|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Undelivered Message and DLQ |
« View previous topic :: View next topic » |
Author |
Message
|
dash345 |
Posted: Fri Feb 07, 2003 1:32 pm Post subject: Undelivered Message and DLQ |
|
|
Newbie
Joined: 07 Feb 2003 Posts: 1
|
Some newbie questions.
If a message is undeliverable, where does it go to the DLQ ? On the source system or on the target system ?
and what happens if DLQ is not defined on either systems ?
Will any MQRO_* options specified while putting the message on the source system affect the above behaviour ?
Appreciate yr response. |
|
Back to top |
|
 |
bbeardsley |
Posted: Fri Feb 07, 2003 1:49 pm Post subject: Re: Undelivered Message and DLQ |
|
|
 Acolyte
Joined: 17 Dec 2001 Posts: 52 Location: Dallas, TX, USA
|
dash345 wrote: |
On the source system or on the target system ? |
Depends on where the failure occured. On the source system consider - The message couldn't be delivered because the target system is unavailable. On the target system consider - The message couldn't be delivered because the processing app was down.
dash345 wrote: |
and what happens if DLQ is not defined on either systems ? |
A queue named SYSTEM.DEAD.LETTER.QUEUE is created by default (along with other system objects) when you create a queue manager.
There is also a dead letter queue handler named runmqdlq that should be in your mqm/samp/bin directory. With this tool you can specify messages to be processed and how they are processed (fwd, ignore, retry, discard). Check the System Administration Guide part 4 chapter 12.
-Bridgette Beardsley |
|
Back to top |
|
 |
leongor |
Posted: Sun Feb 09, 2003 12:27 am Post subject: |
|
|
 Master
Joined: 13 May 2002 Posts: 264 Location: Israel
|
Bridgette, please be more precise with your answers.
On the source system :
Quote: |
The message couldn't be delivered because the target system is unavailable. |
If the target system is unavailable then message will remain on xmitQ waiting for sender channel to arise.
I have never met the case where message arrived to local deadQ ( except working with Integrator maybe )
On the target system :
Quote: |
The message couldn't be delivered because the processing app was down. |
If the receiving application is down then message will remain in application queue.
If the application queue was full then channel receiver will put the message to deadQ ( one of the reasons ).
Quote: |
A queue named SYSTEM.DEAD.LETTER.QUEUE is created by default (along with other system objects) when you create a queue manager. |
That's right, but it must be assigned to Queue manager ( can be in creation time with -u switch or later altering queue manager).
If you use MQSeries Explorer to work with messages then I'll recommend you to name deadQ like <QmgrName>.DLQ
because MQSeries Explorer by default hides all SYSTEM objects. _________________ Regards.
Leonid.
IBM Certified MQSeries Specialist. |
|
Back to top |
|
 |
pgorak |
Posted: Sun Feb 09, 2003 11:08 pm Post subject: |
|
|
 Disciple
Joined: 15 Jul 2002 Posts: 158 Location: Cracow, Poland
|
If DLQ is not available, then what happens depends on:
- persistence of the undeliverable message
- NPMSPEED parameter of the channel the message was delivered through
If the message is non-persistent and was sent through a FAST channel, the message is discarded.
In all other cases, the channel is stopped and the message remains in the transmission queue on the source system (and triggering is disabled for the transmission queue)
The same happens if the DLQ exists and is assigned to the queue manager, but either DLQ is full or the message is too big to be put on the DLQ.
It is also possible for messages of type MQMT_REQUEST to be returned to the source system, when undeliverable, provided appropriate Report options are specified.
Piotr |
|
Back to top |
|
 |
pgorak |
Posted: Mon Feb 10, 2003 12:24 am Post subject: |
|
|
 Disciple
Joined: 15 Jul 2002 Posts: 158 Location: Cracow, Poland
|
Quote: |
I have never met the case where message arrived to local deadQ |
I was curious about that case and did a quick search in the documentation. Actually, message can be put to DLQ on the source system and this happens if MCA cannot perform data conversion. I paste a quote from the documentation here (Application Programming Guide, Chapter 10 Getting messages from a queue, Application Data Conversion)
If the sending MCA is to convert the data, the CONVERT(YES) keyword must be specified on the definition of each sender or server channel for which conversion is required. If the data conversion fails, the message is sent to the DLQ at the sending queue manager and the Feedback field of the MQDLH structure indicates the reason. If the message cannot be put on the DLQ, the channel will close and the unconverted message will remain on the transmission queue.
Piotr |
|
Back to top |
|
 |
leongor |
Posted: Mon Feb 10, 2003 6:02 am Post subject: |
|
|
 Master
Joined: 13 May 2002 Posts: 264 Location: Israel
|
Good point.
Thanks. _________________ Regards.
Leonid.
IBM Certified MQSeries Specialist. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|