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.

This reason code occurs in the following environments: AIX®, HP-UX, IBM® i, Solaris, Windows, plus WebSphere® MQ clients connected to these systems.

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.