Structure of the report field
This information describes the structure of the report field.
The Report field is a 32-bit integer that is divided into three separate subfields. These subfields identify:- Report options that are rejected if the local queue manager does not recognize them
- Report options that are always accepted, even if the local queue manager does not recognize them
- Report options that are accepted only if certain other conditions are satisfied
Each subfield is identified by a bit mask that has 1-bits in the positions corresponding to the subfield, and 0-bits elsewhere. The bits in a subfield are not necessarily adjacent. The bits are numbered such that bit 0 is the most significant bit, and bit 31 the least significant bit. The following masks are defined to identify the subfields:
- MQRO_REJECT_UNSUP_MASK
- This mask identifies the bit positions within the Report field where report options that are not supported by the local queue manager cause the MQPUT or MQPUT1 call to fail with completion code MQCC_FAILED and reason code MQRC_REPORT_OPTIONS_ERROR.
This subfield occupies bit positions 3, and 11 through 13.
- MQRO_ACCEPT_UNSUP_MASK
- This mask identifies the bit positions within the Report field where report options that are not supported by the local queue manager are nevertheless accepted on the MQPUT or MQPUT1 calls. Completion code MQCC_WARNING with reason code MQRC_UNKNOWN_REPORT_OPTION are returned in this case.
This subfield occupies bit positions 0 through 2, 4 through 10, and 24 through 31.
The following report options are included in this subfield:- MQRO_ACTIVITY
- MQRO_COPY_MSG_ID_TO_CORREL_ID
- MQRO_DEAD_LETTER_Q
- MQRO_DISCARD_MSG
- MQRO_EXCEPTION
- MQRO_EXCEPTION_WITH_DATA
- MQRO_EXCEPTION_WITH_FULL_DATA
- MQRO_EXPIRATION
- MQRO_EXPIRATION_WITH_DATA
- MQRO_EXPIRATION_WITH_FULL_DATA
- MQRO_NAN
- MQRO_NEW_MSG_ID
- MQRO_NONE
- MQRO_PAN
- MQRO_PASS_CORREL_ID
- MQRO_PASS_MSG_ID
- MQRO_ACCEPT_UNSUP_IF_XMIT_MASK
- This mask identifies the bit positions within the Report field where report options that are not supported by the local queue manager are nevertheless accepted on the MQPUT or MQPUT1 calls provided that both of the following conditions are satisfied:
- The message is destined for a remote queue manager.
- The application is not putting the message directly on a local transmission queue (that is, the queue identified by the ObjectQMgrName and ObjectName fields in the object descriptor specified on the MQOPEN or MQPUT1 call is not a local transmission queue).
Completion code MQCC_WARNING with reason code MQRC_UNKNOWN_REPORT_OPTION are returned if these conditions are satisfied, and MQCC_FAILED with reason code MQRC_REPORT_OPTIONS_ERROR if not.
This subfield occupies bit positions 14 through 23.
The following report options are included in this subfield:- MQRO_COA
- MQRO_COA_WITH_DATA
- MQRO_COA_WITH_FULL_DATA
- MQRO_COD
- MQRO_COD_WITH_DATA
- MQRO_COD_WITH_FULL_DATA
If any options are specified in the Report field that the queue manager does not recognize, the queue manager checks each subfield in turn by using the bitwise AND operation to combine the Report field with the mask for that subfield. If the result of that operation is not zero, the completion code and reason codes described previously are returned.
If MQCC_WARNING is returned, it is not defined which reason code is returned if other warning conditions exist.
The ability to specify and have accepted report options that are not recognized by the local queue manager is useful when sending a message with a report option that is recognized and processed by a remote queue manager.
Parent topic: Report options and message flags