Overview for MQPMR

Availability: The MQPMR structure is available on the following platforms:

  • AIX
  • IBM i
  • Linux
  • Windows

and for IBM MQ clients connected to these systems.

Purpose: Use the MQPMR structure to specify various message properties for a single destination when putting a message to a distribution list. MQPMR is an input/output structure for the MQPUT and MQPUT1 calls.

Character set and encoding: Data in MQPMR must be in the character set given by the CodedCharSetId queue manager attribute and encoding of the local queue manager given by MQENC_NATIVE. However, if the application is running as an MQ client, the structure must be in the character set and encoding of the client.

Usage: By providing an array of these structures on the MQPUT or MQPUT1 call, we can specify different values for each destination queue in a distribution list. Some of the fields are input only, others are input/output.

Note: This structure is unusual in that it does not have a fixed layout. The fields in this structure are optional, and the presence or absence of each field is indicated by the flags in the PutMsgRecFields field in MQPMO. Fields that are present must occur in the following order :

  • MsgId
  • CorrelId
  • GroupId
  • Feedback
  • AccountingToken

Fields that are absent occupy no space in the record.

Because MQPMR does not have a fixed layout, no definition of it is provided in the header, COPY, and INCLUDE files for the supported programming languages. The application programmer must create a declaration containing the fields that are required by the application, and set the flags in PutMsgRecFields to indicate the fields that are present.

Parent topic: MQPMR - Put-message record