Feedback (MQLONG)
The Feedback field is used with a message of type MQMT_REPORT to indicate the nature of the report, and is only meaningful with that type of message.
The field can contain one of the MQFB_* values, or one of the MQRC_* values. Feedback codes are grouped as follows:
- MQFB_NONE
- No feedback provided.
- MQFB_SYSTEM_FIRST
- Lowest value for system-generated feedback.
- MQFB_SYSTEM_LAST
- Highest value for system-generated feedback.
The range of system-generated feedback codes MQFB_SYSTEM_FIRST through MQFB_SYSTEM_LAST includes the general feedback codes listed in this topic (MQFB_*), and also the reason codes (MQRC_*) that can occur when the message cannot be put on the destination queue.
- MQFB_APPL_FIRST
- Lowest value for application-generated feedback.
- MQFB_APPL_LAST
- Highest value for application-generated feedback.
Applications that generate report messages must not use feedback codes in the system range (other than MQFB_QUIT), unless they want to simulate report messages generated by the queue manager or message channel agent.
On the MQPUT or MQPUT1 calls, the value specified must either be MQFB_NONE, or be within the system range or application range. This is checked whatever the value of MsgType.
General feedback codes:
- MQFB_COA
- Confirmation of arrival on the destination queue (see MQRO_COA).
- MQFB_COD
- Confirmation of delivery to the receiving application (see MQRO_COD).
- MQFB_EXPIRATION
- Message was discarded because it had not been removed from the destination queue before its expiry time had elapsed.
- MQFB_PAN
- Positive action notification (see MQRO_PAN).
- MQFB_NAN
- Negative action notification (see MQRO_NAN).
- MQFB_QUIT
- End application.
This can be used by a workload scheduling program to control the number of instances of an application program that are running. Sending an MQMT_REPORT message with this feedback code to an instance of the application program indicates to that instance that it should stop processing. However, adherence to this convention is a matter for the application; it is not enforced by the queue manager.
Channel feedback codes:
- MQFB_CHANNEL_COMPLETED
- A channel ended normally.
- MQFB_CHANNEL_FAIL
- A channel ended abnormally and goes into STOPPED state.
- MQFB_CHANNEL_FAIL_RETRY
- A channel ended abnormally and goes into RETRY state.
IMS-bridge feedback codes
These codes are used when an unexpected IMS-OTMA sense code is received. The sense code or, when the sense code is 0x1A the reason code associated with that sense code, is indicated in the Feedback.
- For Feedback codes in range MQFB_IMS_FIRST (300) through MQFB_IMS_LAST (399), a sense code other than 0x1A was received. The sense code is given by the expression (Feedback - MQFB_IMS_FIRST+1)
- For Feedback codes in range MQFB_IMS_NACK_1A_REASON_FIRST (600) through MQFB_IMS_NACK_1A_REASON_LAST (855), a sense code of 0x1A was received. The reason code associated with the sense code is given by the expression (Feedback - MQFB_IMS_NACK_1A_REASON_FIRST)
The meaning of the IMS-OTMA sense codes and corresponding reason codes are described in Open Transaction Manager Access Guide and Reference.
The following feedback codes can be generated by the IMS bridge:
- MQFB_DATA_LENGTH_ZERO
- A segment length was zero in the application data of the message.
- MQFB_DATA_LENGTH_NEGATIVE
- A segment length was negative in the application data of the message.
- MQFB_DATA_LENGTH_TOO_BIG
- A segment length was too large in the application data of the message.
- MQFB_BUFFER_OVERFLOW
- The value of one of the length fields would cause the data to overflow the message buffer.
- MQFB_LENGTH_OFF_BY_ONE
- The value of one of the length fields was 1 byte too short.
- MQFB_IIH_ERROR
- The Format field in MQMD specifies MQFMT_IMS, but the message does not begin with a valid MQIIH structure.
- MQFB_NOT_AUTHORIZED_FOR_IMS
- The user ID contained in the message descriptor MQMD, or the password contained in the Authenticator field in the MQIIH structure, failed the validation performed by the IMS bridge. As a result the message was not passed to IMS.
- MQFB_IMS_ERROR
- An unexpected error was returned by IMS. Consult the IBM MQ error log on the system on which the IMS bridge resides for more information about the error.
- MQFB_IMS_FIRST
- When the IMS-OTMA sense code is not 0x1A, IMS-generated feedback codes are in the range MQFB_IMS_FIRST (300) through MQFB_IMS_LAST (399). The IMS-OTMA sense code itself is Feedback minus MQFB_IMS_ERROR.
- MQFB_IMS_LAST
- Highest value for IMS-generated feedback when the sense code is not 0x1A.
- MQFB_IMS_NACK_1A_REASON_FIRST
- When the sense code is 0x1A, IMS-generated feedback codes are in the range MQFB_IMS_NACK_1A_REASON_FIRST (600) through MQFB_IMS_NACK_1A_REASON_LAST (855).
- MQFB_IMS_NACK_1A_REASON_LAST
- Highest value for IMS-generated feedback when the sense code is 0x1A
CICS -bridge feedback codes: The following feedback codes can be generated by the CICS bridge:
- MQFB_CICS_APPL_ABENDED
- The application program specified in the message abnormally ended. This feedback code occurs only in the Reason field of the MQDLH structure.
- MQFB_CICS_APPL_NOT_STARTED
- The EXEC CICS LINK for the application program specified in the message failed. This feedback code occurs only in the Reason field of the MQDLH structure.
- MQFB_CICS_BRIDGE_FAILURE
- CICS bridge terminated abnormally without completing normal error processing.
- MQFB_CICS_CCSID_ERROR
- Character set identifier not valid.
- MQFB_CICS_CIH_ERROR
- CICS information header structure missing or not valid.
- MQFB_CICS_COMMAREA_ERROR
- Length of CICS COMMAREA not valid.
- MQFB_CICS_CORREL_ID_ERROR
- Correlation identifier not valid.
- MQFB_CICS_DLQ_ERROR
- The CICS bridge task was unable to copy a reply to this request to the dead-letter queue. The request was backed out.
- MQFB_CICS_ENCODING_ERROR
- Encoding not valid.
- MQFB_CICS_INTERNAL_ERROR
- CICS bridge encountered an unexpected error.
This feedback code occurs only in the Reason field of the MQDLH structure.
- MQFB_CICS_NOT_AUTHORIZED
- User identifier not authorized or password not valid.
This feedback code occurs only in the Reason field of the MQDLH structure.
- MQFB_CICS_UOW_BACKED_OUT
- The unit of work was backed out, for one of the following reasons:
- A failure was detected while processing another request within the same unit of work.
- A CICS abend occurred while the unit of work was in progress.
- MQFB_CICS_UOW_ERROR
- Unit-of-work control field UOWControl not valid.
Trace-route message feedback codes:
- MQFB_ACTIVITY
- Used with the MQFMT_EMBEDDED_PCF format to allow the option of user data following activity reports.
- MQFB_MAX_ACTIVITIES
- Returned when the trace-route message is discarded because the number of activities the message has been involved in exceeds the maximum activities limit.
- MQFB_NOT_FORWARDED
- Returned when the trace-route message is discarded because it is about to be sent to a remote queue manager that does not support trace-route messages.
- MQFB_NOT_DELIVERED
- Returned when the trace-route message is discarded because it is about to be put on a local queue.
- MQFB_UNSUPPORTED_FORWARDING
- Returned when the trace-route message is discarded because a value in the forwarding parameter is unrecognized, and is in the rejected bit mask.
- MQFB_UNSUPPORTED_DELIVERY
- Returned when the trace-route message is discarded because a value in the delivery parameter is unrecognized, and is in the rejected bit mask.
IBM MQ reason codes: For exception report messages, Feedback contains an IBM MQ reason code. Among possible reason codes are:
- MQRC_PUT_INHIBITED
- (2051, X'803') Put calls inhibited for the queue.
- MQRC_Q_FULL
- (2053, X'805') Queue already contains maximum number of messages.
- MQRC_NOT_AUTHORIZED
- (2035, X'7F3') Not authorized for access.
- MQRC_Q_SPACE_NOT_AVAILABLE
- (2056, X'808') No space available on disk for queue.
- MQRC_PERSISTENT_NOT_ALLOWED
- (2048, X'800') Queue does not support persistent messages.
- MQRC_MSG_TOO_BIG_FOR_Q_MGR
- (2031, X'7EF') Message length greater than maximum for queue manager.
- MQRC_MSG_TOO_BIG_FOR_Q
- (2030, X'7EE') Message length greater than maximum for queue.
For a full list of reason codes, see:
- For IBM MQ for z/OS, see API reason codes.
- For all other platforms, see API completion and reason codes.
.
This is an output field for the MQGET call, and an input field for MQPUT and MQPUT1 calls. The initial value of this field is MQFB_NONE.
Parent topic: Fields for MQMD