In some WebSphere MQ products the dead-letter queue is referred to as an
undelivered-message queue.
If a channel ceases to run for any reason, applications will probably
continue to place messages on transmission queues, creating a potential
overflow situation. Applications can monitor transmission queues to
find the number of messages waiting to be sent, but this would not be a normal
function for them to carry out.
When this occurs in a message-originating node, and the local transmission
queue is full, the application's PUT fails.
When this occurs in a staging or destination node, there are three ways
that the MCA copes with the situation:
- By calling the message-retry exit, if one is defined.
- By directing all overflow messages to a dead-letter queue
(DLQ), returning an exception report to applications that requested these
reports.
- Note:
- In distributed-queuing management, if the message is too big for the DLQ, the
DLQ is full, or the DLQ is not available, the channel stops and the message
remains on the transmission queue. Ensure your DLQ is defined,
available, and sized for the largest messages you handle.
- By closing down the channel, if neither of the previous options
succeeded.
- By returning the undelivered messages back to the sending end and
returning a full report to the reply-to queue
(MQRC_EXCEPTION_WITH_FULL_DATA and MQRO_DISCARD_MSG).
If an MCA is unable to put a message on the DLQ:
- The channel stops
- Appropriate error messages are issued at the system consoles at both ends
of the message channel
- The unit of work is backed out, and the messages reappear on the
transmission queue at the sending channel end of the channel
- Triggering is disabled for the transmission queue
© IBM Corporation 2002. All Rights Reserved