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.

  1. 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)
  2. 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:

.

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.