SYSTEM.DEAD.LETTER.QUEUE is a queue where messages are stored when a message fails to be delivered to its intended queue. For example, if a message was intended to be put into QUEUE01, and there was some issue putting the message into QUEUE01, the message will be put into SYSTEM.DEAD.LETTER.QUEUE. The display queue command can be used to determine if there are any messages in SYSTEM.DEAD.LETTER.QUEUE. The curdepth would be greater than 0.

echo "display queue(SYSTEM.DEAD.LETTER.QUEUE)" | runmqsc MANAGER01


The runmqdlq (run dead letter queue handler) command can be used to attemp to resend the messages in SYSTEM.DEAD.LETTER.QUEUE to their intended queue.

cd /opt/mqm/samp/bin



The following should be displayed.

AMQ8708: Dead-letter queue handler started to process INPUTQ(SYSTEM.DEAD.LETTER.QUEUE) 
AMQ8709: Dead-letter queue handler ending 


Use the display queue command again to determine if there are any messages in SYSTEM.DEAD.LETTER.QUEUE. If the messages were moved to their intended queue, the curdepth of SYSTEM.DEAD.LETTER.QUEUE will be 0.

If the messages remain in the dead letter queue, there can be a number of things that can cause a message to be placed in the dead letter queue. One possibility is that the queue a message was intended to be PUT into has reached its max depth. Typically, you will want to identify the queue the message was intended to be put into and then see if there is some issue with the target queue. If it is the case that the target queue has reached its max depth, a reasonable temporary resolution is to increase the max depth of the target queue and to then move the messages from the dead letter queue into the target queue.

Add a Comment

We will never share your name or email with anyone. Enter your email if you would like to be notified when we respond to your comment.

Please enter 01d83 in the box below so that we can be sure you are a human.