Author |
Message
|
mitul |
Posted: Tue Mar 22, 2005 12:04 am Post subject: How to Trace whether a message was deliverd on to a Q? |
|
|
Apprentice
Joined: 13 Jun 2002 Posts: 33
|
Is there any way by which I can find out whether a particular message was ever delivered to a Local Q?
The client claims that they had delivered the message on their remote Q and it has been sucessfully put at their side. It was not lying in their Xmit Q so assumed to be delivered at the other side QManager.
At the receiving end I have deadletter Q configured as well, but the message is neither in the Deadletter Q nor in the desired Local Q.
I have an application which reads from this local Q and processes the message and sends a reply back. At that time the application was on, but unfortunately it was running with 0 debug level so can't figure out whether the application consumed the message and bombed. But this is very unlikely, cause this application is very robust and running since 3 yrs.
Note - This happened successively twice, after which when all the MQServices and our application were restarted and since then the flow was smooth and we were not able to replicate this.
Is there any way by which I can find out whether the message was ever delivered to that Local Q? And if yes whether it was picked up by an application? I have a unique transaction id in the content of the message.
Please advice.
Regards,
Mitul |
|
Back to top |
|
 |
Nigelg |
Posted: Tue Mar 22, 2005 1:08 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
If the msg is persstent it is somewhere in the system UNLESS it has already been consumed by a user app. In this case you can dump the logs at the receiving end with dmpmqlog; see the System Admin manual for details. You will be able to see msg data in the logged MQPUT. The corresponding MQGET does not contain the msg data, but you can correlate the space index and the queue name to see if the msg was returned by MQGET.
This may not help you if you have circular logging, since only the extent containing the active log can be dumped.
If the msg is non-persistent, then it may have been discarded by the system if there was a problem with the channel. |
|
Back to top |
|
 |
mitul |
Posted: Tue Mar 22, 2005 1:56 am Post subject: |
|
|
Apprentice
Joined: 13 Jun 2002 Posts: 33
|
We use circular logging at both the QMgrs.
I do have the logs which were in the "active" directory for both the QMgrs when the error occurred.
Both QMgrs reside on the same system.
Can you elaborate on what kind of message/report will be generated if I use the dmpmqlog -m QmgrName command and where will the log file be generated? |
|
Back to top |
|
 |
Nigelg |
Posted: Tue Mar 22, 2005 3:17 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
Please look in the System Admin manual for the output format and the command syntax. |
|
Back to top |
|
 |
mitul |
Posted: Tue Mar 22, 2005 3:28 am Post subject: |
|
|
Apprentice
Joined: 13 Jun 2002 Posts: 33
|
Can u let me know that -
if a non-persistent message is delivered on a persistent Q then, on QMgr restart the message will be existing on the Q or not..
I think it won't but just wanna confirm.
I will def look at the Admin Manual and get back to u for further queries.
Also can you let me know where I can get more info abt the part that you stated -
"If the msg is non-persistent, then it may have been discarded by the system if there was a problem with the channel." |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Mar 22, 2005 5:39 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Queues can not be persistent or non-persistent.
They can merely supply a suggestion/default value for message persistence to an application.
If a message is not persistent (and it's not a new special non-persistent but will survive a restart message), and the queue manager that is hosting that message is rebooted, then the message is discarded. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
|