Structure of the message-flags field on IBM i

The MDMFL field is a 32-bit integer that is divided into three separate subfields.

These subfields identify:

  • Message flags that are rejected if the local queue manager does not recognize them
  • Message flags that are always accepted, even if the local queue manager does not recognize them
  • Message flags that are accepted only if certain other conditions are satisfied

Note: All subfields in MDMFL are reserved for use by the queue manager. Each subfield is identified by a bit mask which has 1-bits in the positions corresponding to the subfield, and 0-bits elsewhere. 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:

    MFRUM
    Mask for unsupported message flags that are rejected.

    This mask identifies the bit positions within the MDMFL field where message flags 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 RC2249.

    This subfield occupies bit positions 20 through 31.

    The following message flags are included in this subfield:

    • MFLMIG
    • MFLSEG
    • MFMIG
    • MFSEG
    • MFSEGA
    • MFSEGI

    MFAUM
    Mask for unsupported message flags that are accepted.

    This mask identifies the bit positions within the MDMFL field where message flags which are not supported by the local queue manager will nevertheless be accepted on the MQPUT or MQPUT1 calls. The completion code is CCOK.

    This subfield occupies bit positions 0 through 11.

    MFAUXM
    Mask for unsupported message flags that are accepted only in certain circumstances. This mask identifies the bit positions within the MDMFL field where message flags 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 CCOK is returned if these conditions are satisfied, and CCFAIL with reason code RC2249 if not.

    This subfield occupies bit positions 12 through 19.

If there are flags specified in the MDMFL 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 MDMFL 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.

Parent topic: Report options and message flags on IBM i