Structure of the report field

The MDREP 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 which has 1-bits in the positions corresponding to the subfield, and 0-bits elsewhere. Note that 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:

    RORUM
    Mask for unsupported report options that are rejected.

    This mask identifies the bit positions within the MDREP field where report options which are not supported by the local queue manager will cause the MQPUT or MQPUT1 call to fail with completion code CCFAIL and reason code RC2061.

    This subfield occupies bit positions 3, and 11 through 13.

    ROAUM
    Mask for unsupported report options that are accepted.

    This mask identifies the bit positions within the MDREP field where report options which are not supported by the local queue manager will nevertheless be accepted on the MQPUT or MQPUT1 calls. Completion code CCWARN with reason code RC2104 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:

    • ROCMTC
    • RODLQ
    • RODISC
    • ROEXC
    • ROEXCD
    • ROEXCF
    • ROEXP
    • ROEXPD
    • ROEXPF
    • RONAN
    • RONMI
    • RONONE
    • ROPAN
    • ROPCI
    • ROPMI

    ROAUXM
    Mask for unsupported report options that are accepted only in certain circumstances. This mask identifies the bit positions within the MDREP field where report options which are not supported by the local queue manager will nevertheless be 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 ODMN and ODON fields in the object descriptor specified on the MQOPEN or MQPUT1 call is not a local transmission queue).

    Completion code CCWARN with reason code RC2104 are returned if these conditions are satisfied, and CCFAIL with reason code RC2061 if not.

    This subfield occupies bit positions 14 through 23.

    The following report options are included in this subfield:

    • ROCOA
    • ROCOAD
    • ROCOAF
    • ROCOD
    • ROCODD
    • ROCODF

If there are any options specified in the MDREP field which the queue manager does not recognize, the queue manager checks each subfield in turn by using the bitwise AND operation to combine the MDREP 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 CCWARN 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 which are not recognized by the local queue manager is useful when it is necessary to send a message with a report option which will be recognized and processed by a remote queue manager.

Parent topic: Report options and message flags on IBM i