Author |
Message
|
tkurian |
Posted: Tue Nov 12, 2002 10:43 am Post subject: Dead Letter queue |
|
|
Novice
Joined: 23 Jan 2002 Posts: 11
|
I have some messages that have come to my dead letter queue. I know there was a way to look at the dead letter queue header to find out the reason code for the message. Can anyone tell me how to read the hex code to come up with the reason code? |
|
Back to top |
|
 |
philipaby |
Posted: Tue Nov 12, 2002 11:17 am Post subject: |
|
|
Novice
Joined: 09 Mar 2002 Posts: 13
|
Hi TKurian,
You can either use a dead letter queue reader program to read it into an MQDLH or if you have the MQExplorer with you (i assume you would) you can just read the message straight of the dead letter queue and MQExplorer will adjust the view to include the reason code for you. There is a dead letter header tab which will show the reason code. If your queue manager is on another machine which is not the same as the machine on which the MQExplorer is running. You can see it using the 'Show remote queue manager' option.
Kind Regards
Aby Philip |
|
Back to top |
|
 |
mgrabinski |
Posted: Wed Nov 13, 2002 12:22 am Post subject: |
|
|
Master
Joined: 16 Oct 2001 Posts: 246 Location: Katowice, Poland
|
The reason code is located on bytes # 12 and 13. If your queue manager is on an Intel machine, the least significant byte is first so you need to change their places to read them correctly. Remember the reason code is in hex _________________ Marcin Grabinski <>< |
|
Back to top |
|
 |
bower5932 |
Posted: Wed Nov 13, 2002 9:33 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
If you are interested in processing messages on the DLQ, you can use the runmqldq command. It is documented in the System Admin guide and it allows you to pass in some rules that it will use to process the messages. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Nov 13, 2002 6:05 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
mgrabinski wrote: |
The reason code is located on bytes # 12 and 13. If your queue manager is on an Intel machine, the least significant byte is first so you need to change their places to read them correctly. Remember the reason code is in hex |
What is meant by an Intel machine? Windows?
What if the message originated on the mainframe and is in EBCIDIC but somehow found itself on an NT queue manager's DLQ? Do I still need to switch the bytes?
Is this the Big Endian / Little Endian deal I sometimes hear about? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
RogerLacroix |
Posted: Wed Nov 13, 2002 9:19 pm Post subject: |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
|
Back to top |
|
 |
mgrabinski |
Posted: Wed Nov 13, 2002 10:24 pm Post subject: |
|
|
Master
Joined: 16 Oct 2001 Posts: 246 Location: Katowice, Poland
|
The DLQ header is always generated by the destination queue manager. So if a mesasge from mainframe gets to the DLQ on Windows, its reason code will be represented as other integers on Intel - LSB first.
It's a matter of processor achitecture, not operating system.
It's of course recomended to use runmqdlq (it will read the reson code properly). But sometimes you just need to check the reason code, so we need to have this tip in mind. _________________ Marcin Grabinski <>< |
|
Back to top |
|
 |
|