[UNIX, Linux, Windows, IBM i]

2158 (086E) (RC2158): MQRC_PMO_RECORD_FLAGS_ERROR

Explanation

An MQPUT or MQPUT1 call was issued to put a message, but the PutMsgRecFields field in the MQPMO structure is not valid, for one of the following reasons:
  • The field contains flags that are not valid.
  • The message is being put to a distribution list, and put message records have been provided (that is, RecsPresent is greater than zero, and one of PutMsgRecOffset or PutMsgRecPtr is nonzero), but PutMsgRecFields has the value MQPMRF_NONE.
  • MQPMRF_ACCOUNTING_TOKEN is specified without either MQPMO_SET_IDENTITY_CONTEXT or MQPMO_SET_ALL_CONTEXT.

Completion code

MQCC_FAILED

Programmer response

Ensure that PutMsgRecFields is set with the appropriate MQPMRF_* flags to indicate which fields are present in the put message records. If MQPMRF_ACCOUNTING_TOKEN is specified, ensure that either MQPMO_SET_IDENTITY_CONTEXT or MQPMO_SET_ALL_CONTEXT is also specified. Alternatively, set both PutMsgRecOffset and PutMsgRecPtr to zero.