Troubleshooting
Problem
Messages are blocked in the MQ Queue with ‘MQJMS1079: Unable to write message to dead letter queue error messages’
Symptom
Messages are blocked in the MQ Queue with ‘MQJMS1079: Unable to write message to dead letter queue error messages’
Error Message
The messages are getting picked-up and again thrown back to the queue in MQ by the Agents, by throwing following error message:
2008-12-11 15:56:34,903:INFO :Thread-23_QManagerService_0: Successfully reconnected to JMS server [system]: JMSConsumer 2008-12-11 15:56:34,908:ERROR :Thread-23_QManagerService_0: [1229010994908] MQJMS1079: Unable to write message to dead letter queue [system]: JMSConsumer 2008-12-11 15:56:34,913:ERRORDTL:Thread-23_QManagerService_0: [1229010994908]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) at java.lang.Thread.run(Thread.java:797) [system]: JMSConsumer 2008-12-11 15:56:34,914:WARN :Thread-23_QManagerService_0: Exception during receiving. Will retry until successful. [system]: JMSConsumer
Resolving The Problem
Cause:
---------------
In regards to a WAS application (actually the underlying MQJMS) would attempt to write to the Dead Letter Queue (DLQ) is that it is trying to handle a "poison" message, that is a message that causes the WAS application to fail, resulting in the backout of the transaction, part of which causes the poison message to be put back on the input queue. This can result in a cycle of backout/failure effectively bringing the application to a halt if no BackoutQueue/BackoutThreshold is defined.
The WMQ V6 Infocenter has this information:
"The WebSphere® MQ queue manager keeps a record of the number of times that each message has been backed out. When this number reaches a configurable threshold, the ConnectionConsumer requeues the message on a named "requeue" queue. If this requeue fails for any reason, the message is removed from the queue and either requeued to the dead-letter queue, or discarded."
ref: https://www.ibm.com/docs/en/ibm-mq/8.0?topic=consumers-poison-messages-in-xms
The WMQ V6 Infocenter has this information:
"The WebSphere® MQ queue manager keeps a record of the number of times that each message has been backed out. When this number reaches a configurable threshold, the ConnectionConsumer requeues the message on a named "requeue" queue. If this requeue fails for any reason, the message is removed from the queue and either requeued to the dead-letter queue, or discarded."
ref: https://www.ibm.com/docs/en/ibm-mq/8.0?topic=consumers-poison-messages-in-xms
Action:
------------
Please define a Dead Letter Queue on the queue manager which is attached to the failing application. Ensure the application has sufficient access to this queue. Only then will we be able to see the reason for the failure and investigate further. The WMQ Explorer can be used to view the DLQ and format the DLQ header which contains the MQRC.
[{"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
NFX4649
Was this topic helpful?
Document Information
Modified date:
30 May 2024
UID
swg21559041