Author |
Message
|
velocity |
Posted: Thu Dec 13, 2007 6:57 am Post subject: Dead Letter Queue |
|
|
Centurion
Joined: 30 Nov 2007 Posts: 126
|
Hi Guys,
I have some messages in the DLQ. I want to know what the reason code was for each of the messages...Is there any way to know it??
And, for clearing the local queue do we have to stop the QMGR??..I think the QMGR has an handle open with the DLQ all the time! OR can runmqdlq be helpful??
Rgds! |
|
Back to top |
|
 |
bower5932 |
Posted: Thu Dec 13, 2007 7:09 am Post subject: Re: Dead Letter Queue |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
You can't issue the clear queue command if somebody has the queue open. You don't need to shut down the qmgr. You can use the explorer and use the option to clear the queue by getting the messages. However, a better question to ask is why are you trying to clear a queue that somebody has open.
Last edited by bower5932 on Thu Dec 13, 2007 7:15 am; edited 1 time in total |
|
Back to top |
|
 |
Vitor |
Posted: Thu Dec 13, 2007 7:13 am Post subject: Re: Dead Letter Queue |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
velocity wrote: |
I have some messages in the DLQ. I want to know what the reason code was for each of the messages...Is there any way to know it?? |
It's recorded in the dead letter header on the front of each of the messages in the DLQ.
velocity wrote: |
runmqdlq be helpful?? |
Now what would make you think the dead letter handler programme supplied with the software could be any use in handling the dead letter queue?
*anti-sarcasm sprinkers go off*
Given that you've not determined why these are dead lettered (because I've just told you where the code is) isn't clearing it a little premature? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
velocity |
Posted: Thu Dec 13, 2007 7:15 am Post subject: |
|
|
Centurion
Joined: 30 Nov 2007 Posts: 126
|
1) I cannot use MQ explorer since I am using HP-UX. Is there an alternate option to clear the queue?
2)The messages in the DLQ were pretty old and I just wanted them to be cleared.
Can you also try and answer my first question? "How will I find the reason why the messages have landed in the DLQ"? |
|
Back to top |
|
 |
bower5932 |
Posted: Thu Dec 13, 2007 7:18 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
You could use the MQExplorer on a separate machine and connect in remotely. You could also write a small 'amqsget' program to clear a queue.
Vitor gave information on how to get the code out of the header.
Are you sure that runmqdlq has the queue open? You might want to use the qstatus command to find out who has it open. |
|
Back to top |
|
 |
velocity |
Posted: Thu Dec 13, 2007 7:23 am Post subject: |
|
|
Centurion
Joined: 30 Nov 2007 Posts: 126
|
You are right Vitor! But then I want to clear the messages because the messages were pretty old.(We were planning to test something...So it was not that big of a deal .
However, I think " If MQ can convey a reason code to the application then DLQ is not used"
I will check for the reason code too when I get a chance, but the last time I saw there was none.
echo "inputqm('$mqmgr') inputq('$dlq_name') wait(no)
action(discard)" | runmqdlq
This is the command line script that will finally clear the queue! I guess.. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Dec 13, 2007 8:12 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
velocity wrote: |
However, I think " If MQ can convey a reason code to the application then DLQ is not used" |
DLQ is used where a message is undeliverable. Because it can't be delivered, no application can be involved because applications use queues.
Your statement applies to a message being put to a queue by an application, or being read from a queue by an application. In both cases the queue has been identified by the queue manager and the DLQ does not apply.
velocity wrote: |
I will check for the reason code too when I get a chance, but the last time I saw there was none. |
Reason code is a mandatory field in the DLH. Each will have one. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|