Author |
Message
|
paleyplease |
Posted: Fri Oct 13, 2017 7:10 am Post subject: MSGS in DLQ |
|
|
Apprentice
Joined: 05 Feb 2014 Posts: 45
|
I have a QMGR that has a few msgs in the DLQ but when I run the MQ handler I get this error:
./runmqdlq DEAD.LETTER.Q MQXL06P
action(retry)
10/13/2017 10:01:36 AM AMQ8708: Dead-letter queue handler started to process INPUTQ(DEAD.LETTER.Q).
10/13/2017 10:01:36 AM AMQ8722: Dead-letter queue handler unable to put message: Rule 1 Reason 2085.
10/13/2017 10:01:36 AM AMQ8722: Dead-letter queue handler unable to put message: Rule 1 Reason 2085.
But when I browse the msgs on the DLQ:
length - 468 of 468 bytes
00000000: 444C 4820 0100 0000 0408 0000 414D 512E 'DLH ........AMQ.'
00000010: 3539 4334 4632 4443 3244 3736 4143 4632 '59C4F2DC2D76ACF2'
00000020: 2020 2020 2020 2020 2020 2020 2020 2020 ' '
00000030: 2020 2020 2020 2020 2020 2020 4D51 584C ' MQXL'
00000040: 3036 5020 2020 2020 2020 2020 2020 2020 '06P '
00000050: 2020 2020 2020 2020 2020 2020 2020 2020 ' '
00000060: 2020 2020 2020 2020 2020 2020 2202 0000 ' "...'
00000070: B804 0000 4D51 4144 4D49 4E20 0600 0000 '....MQADMIN ....'
00000080: 616D 7170 6373 6561 0000 0000 0000 0000 'amqpcsea........'
00000090: 0000 0000 0000 0000 0000 0000 3230 3137 '............2017'
000000A0: 3130 3131 3138 3235 3439 3932 0200 0000 '101118254992....'
000000B0: 2400 0000 0200 0000 2900 0000 0100 0000 '$.......).......'
000000C0: 0100 0000 0000 0000 0000 0000 0B00 0000 '................'
000000D0: 0400 0000 4400 0000 E007 0000 0000 0000 '....D...........'
000000E0: 3000 0000 4756 2E44 454D 414E 442E 4341 '0...GV.DEMAND.CA'
000000F0: 4348 452E 4341 532E 4552 524F 522E 5120 'CHE.CAS.ERROR.Q '
The following queue does exist on the QMGR:
GV.DEMAND.CACHE.CAS.ERROR.Q
This one doesnt, wasnt sure if its looking for this: AMQ.59C4F2DC2D76ACF2 |
|
Back to top |
|
 |
exerk |
Posted: Fri Oct 13, 2017 7:17 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
That looks like it's due to a TEMP.DYN queue no longer in existence, so, are these messages the result of a monitoring application making enquiries of queue GV.DEMAND.CACHE.CAS.ERROR.Q and timing out? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
paleyplease |
Posted: Fri Oct 13, 2017 7:25 am Post subject: |
|
|
Apprentice
Joined: 05 Feb 2014 Posts: 45
|
Thanks for the reply. Not 100% sure about that.
Trying to get to the bottom of why msgs go to the DLQ, and when I try to requeue them via the dlq handler it throws the 2085 |
|
Back to top |
|
 |
Vitor |
Posted: Fri Oct 13, 2017 7:30 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
paleyplease wrote: |
Trying to get to the bottom of why msgs go to the DLQ |
The error code in the dead letter header is probably a good place to start. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
zpat |
Posted: Fri Oct 13, 2017 7:33 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
You could add a rule to discard messages from queue names starting with AMQ.
Generally the DLQ rules should be targeted at known queue name patterns or message attributes (like persistent messages).
In any case a rule to re-queue to the same queue doesn't really make a lot of sense. It arrived on the DLQ for a reason, so usually it's best moved to a backout or error queue for investigation, unless something has happened to deal with the original reason. _________________ Well, I don't think there is any question about it. It can only be attributable to human error. This sort of thing has cropped up before, and it has always been due to human error.
Last edited by zpat on Fri Oct 13, 2017 7:39 am; edited 1 time in total |
|
Back to top |
|
 |
paleyplease |
Posted: Fri Oct 13, 2017 7:33 am Post subject: |
|
|
Apprentice
Joined: 05 Feb 2014 Posts: 45
|
I physically created these per the 2085:
AMQ.59C4F2DC2D76ACF2
AMQ.59C4F2DC2CB370EF
Ran the DLQ handler and a msg went there.
Wondering what the purpose of those type of queues are and if this is necessary. |
|
Back to top |
|
 |
zpat |
Posted: Fri Oct 13, 2017 7:40 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
Better to add a DISCARD rule to the DLQ rules than to create unneeded queues. _________________ Well, I don't think there is any question about it. It can only be attributable to human error. This sort of thing has cropped up before, and it has always been due to human error. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Oct 13, 2017 7:41 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Those are temporary dynamic queues.
They are used by things like MQExplorer and monitoring tools and etc.
If those queues are closed, they disappear. If they are closed or the application quits while messages are still in flight to go to those queues, then those messages end up in the DLQ. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
paleyplease |
Posted: Fri Oct 13, 2017 7:41 am Post subject: |
|
|
Apprentice
Joined: 05 Feb 2014 Posts: 45
|
I agree, I think the key for me is to understand why msgs are going to the DLQ and what the purpose of these AMQ* queues are for and how to prevent this. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Oct 13, 2017 7:45 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
paleyplease wrote: |
I think the key for me is to understand why msgs are going to the DLQ |
Which is given by the code in the DLH. He said again.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
paleyplease |
Posted: Fri Oct 13, 2017 7:47 am Post subject: |
|
|
Apprentice
Joined: 05 Feb 2014 Posts: 45
|
Right so whats the purpose of these AMQ* |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Oct 13, 2017 7:48 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
paleyplease wrote: |
I agree, I think the key for me is to understand why msgs are going to the DLQ and what the purpose of these AMQ* queues are for and how to prevent this. |
These messages are going to the DLQ because the AMQ* queues don't exist any more.
The AMQ* queues are temporary and dynamic, which means they only exist while the program that created them is still running and has them open.
You can "prevent" this by changing the properties of all of your model queue (or maybe the qmgrr? I forget) to prevent someone from opening model queue.
This will break a lot of things. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Oct 13, 2017 7:49 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
paleyplease wrote: |
Right so whats the purpose of these AMQ* |
The purpose of these queues is "whatever the program that created them is using them for". _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
paleyplease |
Posted: Fri Oct 13, 2017 7:50 am Post subject: |
|
|
Apprentice
Joined: 05 Feb 2014 Posts: 45
|
|
Back to top |
|
 |
zpat |
Posted: Fri Oct 13, 2017 8:03 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
MQJ explorer for example uses them.
If the DLH RC is queue full (2053), try increasing the max depth on the model queue to avoid the problem re-occurring. _________________ Well, I don't think there is any question about it. It can only be attributable to human error. This sort of thing has cropped up before, and it has always been due to human error. |
|
Back to top |
|
 |
|