ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Tracking messages

Post new topic  Reply to topic Goto page Previous  1, 2
 Tracking messages « View previous topic :: View next topic » 
Author Message
PeterPotkay
PostPosted: Thu Jul 17, 2008 6:10 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

bruce2359 wrote:

If the dead-letter queue doesn't exist (and in your case, it doesn't exist because you didn't alter the DEADQ attribute of the qmgr to know the name of the dead-letter queue) OR the dead-letter queue is put disabled OR the message is too big for the queue; then WMQ discards the message.


... or the DLQ is full ...
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Jul 17, 2008 8:13 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9470
Location: US: west coast, almost. Otherwise, enroute.

That, too.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
jainvik7
PostPosted: Thu Jul 17, 2008 9:08 pm    Post subject: Reply with quote

Apprentice

Joined: 19 Feb 2006
Posts: 38

Bruce,

Quote:
Queue manager object altered to know the name of the dead-letter queue? NO


When I said I did not alter the qmgr, I meant that I did not alter the qmgr after I created it. What I mean to say here is that I had created the qmgr with the dlq defined for that. Please refer to my original post. I had mentioned that all the qmgrs have the dlq defined for them.

So ideally I should have found the messages on the dlq?

And in any of the scenarios mentioned/discussed in this discussion, I would have have expected something to be logged in the AMQERR01 file. But that is not the case. This is what leaves me more confused.

Hope this clarifies.

Thanks.
Back to top
View user's profile Send private message
mlr
PostPosted: Thu Jul 17, 2008 11:00 pm    Post subject: Reply with quote

Novice

Joined: 29 Jun 2008
Posts: 13

if you want to keep the msgs no matter what, make them persistent. wmq discards non-persistent msgs if there is a problem deliviering them.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Jul 18, 2008 8:02 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9470
Location: US: west coast, almost. Otherwise, enroute.

Quote:
I would have have expected something to be logged in the AMQERR01 file.

An unrealistic expectation, given the narrative (Intercommunications, APR and APG) about non-persistent messages across FAST channels.

Do a search through the WMQ Messages manual, and you will discover no entries about non-persistent messages.

Since you cannot repeat this scenario, I'd strongly suggest using persistent messages; and if you can't, then at least set NPMSPEED(NORMAL) so that the MCA sends all messages in units of work. Make sure your application programs request the appropriate report messages so that the app will be notified of downstream failures to deliver.

The utility you used is bare-bones - it is not a good model for a business application.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Sat Jul 19, 2008 8:45 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

mlr wrote:
wmq discards non-persistent msgs if there is a problem deliviering them.

More often than not MQ does not discard even non persistent messages when there is a problem delivering them.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
bruce2359
PostPosted: Sat Jul 19, 2008 10:58 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9470
Location: US: west coast, almost. Otherwise, enroute.

Quote:
wmq discards non-persistent msgs if there is a problem deliviering them

Not the case. WMQ wants to deliver all your messages, both persistent and non-persistent.

There are specific requirements that must be met for WMQ to discard non-persistent messages. These are well-documented in the APG, APR and Intercommunications manuals.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
sami.stormrage
PostPosted: Sat Jul 19, 2008 1:18 pm    Post subject: Reply with quote

Disciple

Joined: 25 Jun 2008
Posts: 186
Location: Bangalore/Singapore

Err.. whats the discussion about.. I posted earlier that.. even I tested this scenario and it returns an error only after some time.. not at the first put.
_________________
*forgetting everything *
Back to top
View user's profile Send private message Yahoo Messenger
sami.stormrage
PostPosted: Sat Jul 19, 2008 11:14 pm    Post subject: Reply with quote

Disciple

Joined: 25 Jun 2008
Posts: 186
Location: Bangalore/Singapore

Quote:
It appears that when you MQOPENed the queue, the local qmgr found the clustered definition of the queue put(enabled) and you successfully put messages to the transmission queue. When the messages arrived at the downstream qmgr, that qmgr found the queue put(disabled); and according to the above rules, discarded your messages.


Bruce.. something called the Qname resolution happens which.. decides where the messages go from the sending Qmgr..
_________________
*forgetting everything *
Back to top
View user's profile Send private message Yahoo Messenger
bruce2359
PostPosted: Sun Jul 20, 2008 8:53 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9470
Location: US: west coast, almost. Otherwise, enroute.

Quote:
Bruce.. something called the Qname resolution happens which.. decides where the messages go from the sending Qmgr..

Saying that something exists does not add value to the conversation.

Why is name resolution important here? What are the implications of cluster definitions?

The name resolution process is documented in the Intercommunications manual, as well as other manuals.

Name resolution takes place at MQOPEN (or MQPUT1, which does an implied MQOPEN).

When an application issues an MQOPEN or MQPUT1, the local (where the application is running) qmgr searches for a definition whose name matches the name in the MQOD (object descriptor), the name that the application tries to open).

The qmgr first searches for locally defined QLocal, QModel, QAlias, QRemote; then, if no matching definition is found, the partial repository is searched; then if no matching definition is found, the full repository is searched.

If the name the application opens resolves to a transmission queue, then the sending MCA flows the message downstream. The receiving MCA drives name resolution on its local qmgr - using the same search order.

My suspicion is that the application succeeded MQOPENing the most recent (as seen by this qmgr) clustered object definition because the most recent (as seem by the local qmgr) definition was put(enabled). Result: MQPUTs succeeded.

Why? Because when the queue was put(inhibited) on the remote qmgr, the updated - put(inhibited) - definition had not yet been routed to the qmgr where the application was running. Again, name resolution takes place at MQOPEN. If the definition was local to the application, then the next MQPUT would have failed.

At next MQOPEN, the updated definition showed put(inhibited). Result: Name resolution could not find a put(enabled) definition.

My suspicion is that the dead-letter queue at the downstream qmgr did not exist (or was not available), and that the non-persistent messages were discarded. WMQ does not issue errors about non-persistent messages that are discarded. This is working as designed. This is repeatable.

The supplied utilities are tools to do elementary testing, like: can I open a queue? can I put a message? can I get a message, and so on.

Adding clustered definition adds some more complexity to the problem as perceived and described in the original post.

The Intercommunication manual, together with the APG and APR describe this behavior. This is working as designed and documented.

From all this, best practice coding would call for persistent messages, NORMAL channels, available dead-letter queues, request messages with exception report options.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2 Page 2 of 2

MQSeries.net Forum Index » General IBM MQ Support » Tracking messages
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.