Reason and feedback codes in ASF
Use reason and feedback codes to determine the cause of an error. Common reason codes generated by the ConnectionConsumer are given here.
To determine the cause of an error, use the following information:- The feedback code in any report messages
- The reason code in the MQDLH of any messages in the dead-letter queue
ConnectionConsumers generate the following reason codes.
- MQRC_BACKOUT_THRESHOLD_REACHED (0x93A; 2362)
-
- Cause
- The message has reached the Backout Threshold defined on the QLOCAL, but no Backout Queue is defined.
On platforms where we cannot define the Backout Queue, the message has reached the JMS-defined backout threshold of 20.
- Action
- If this is not wanted, define the Backout Queue for the relevant QLOCAL. Also look for the cause of the multiple backouts.
- MQRC_MSG_NOT_MATCHED (0x93B; 2363)
-
- Cause
- In point-to-point messaging, there is a message that does not match any of the selectors for the ConnectionConsumers monitoring the queue. To maintain performance, the message is requeued to the dead-letter queue.
- Action
- To avoid this situation, ensure that ConnectionConsumers using the queue provide a set of selectors that deal with all messages, or set the QueueConnectionFactory to retain messages.
Alternatively, investigate the source of the message.
- MQRC_JMS_FORMAT_ERROR (0x93C; 2364)
-
- Cause
- JMS cannot interpret the message on the queue.
- Action
- Investigate the origin of the message. JMS normally delivers messages of an unexpected format as a BytesMessage or TextMessage. Occasionally, this fails if the message is very badly formatted.
Other codes that appear in these fields are caused by a failed attempt to requeue the message to a Backout Queue. In this situation, the code describes the reason that the requeue failed. To diagnose the cause of these errors, refer to API reason codes.
If the report message cannot be put on the ReplyToQ, it is put on the dead-letter queue. In this situation, the feedback field of the MQMD is completed as described in this topic. The reason field in the MQDLH explains why the report message could not be placed on the ReplyToQ.
Parent topic: Error handling