IBM Support

Unable to write message to dead letter Queue

Troubleshooting


Problem

Unable to write message to dead letter Queue

Symptom

1. What is Dead Letter Queue:

Dead-letter queues are system-generated queues used for storing messages that could not be delivered. Message Queuing creates a transactional and a nontransactional dead-letter queue on each computer during setup. Storing undelivered messages on the source computer is called negative source journaling.

When a message is placed in a dead-letter queue, Message Queuing changes the class property of the message (PROPID_M_CLASS or MSMQMessage.MsgClass) to reflect the last known status of the message. For example, Message Queuing will change the class of the message and place it in the appropriate dead-letter queue if the message's time-to-reach-queue timer or time-to-be-received timer expires.

Only Message Queuing places messages in dead-letter queues. Applications can only read and delete messages in dead-letter queues.

Error Message

javax.jms.JMSException: MQJMS1079: Unable to write message to dead letter queue
        at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:595)
        at com.ibm.mq.jms.MQMessageConsumer.deadLetter(MQMessageConsumer.java:4486)
        at com.ibm.mq.jms.MQMessageConsumer.removeBadMessage(MQMessageConsumer.java:4753)
        at com.ibm.mq.jms.MQMessageConsumer.getMessage(MQMessageConsumer.java:3578)
        at com.ibm.mq.jms.MQMessageConsumer.receiveInternal(MQMessageConsumer.java:2863)
        at com.ibm.mq.jms.MQMessageConsumer.receive(MQMessageConsumer.java:2666)
        at com.yantra.interop.services.jms.JMSConsumer.run(JMSConsumer.java:292

Resolving The Problem

 

2. Soution for the issue

a. One reason for the error "Unable to write message to dead letter queue" could be authority issues, but this means that the IBM JMS implemention is performing the deadletter put.

In any case, the MQ Admin should grant you permission to put, browse, inquire and display the DLQ. Otherwise, they are on the hook to figure out problems.

b. Under WebSphere 6.0, if you are getting MQ 1079 errors (Unable to write message to dead letter queue), there is an IBM MQ patch that should be applied. It should be applied to the class paths for both WebSphere and the agent server machines, since there are both MQ server-side and client-side fixes. The patch id is IY92390; more information can be found at:

<>

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

NFX4393

Document Information

Modified date:
16 June 2018

UID

swg21553562