IBM MQ messages
An IBM MQ message usually contains a message descriptor, one or more message headers, and a message payload. IBM MQ provides programming interfaces that can help your applications to process IBM MQ messages.
Components of an IBM MQ message
- Message descriptor
- The message descriptor contains standard message properties, applicable to all IBM MQ messages. For example, the message descriptor contains the message identifier and the correlation identifier (similar to the JMSMessageID and the JMSCorrelationID). Every IBM MQ message contains a message descriptor (MQMD).
- Message headers
- A message header usually contains additional message properties applicable to particular types
of message. For example, IBM MQ messages sent to the CICS® bridge include a CICS
bridge header (MQCIH). One exception is the
IBM MQ rules and formatting header 2(MQRFH2), which can be used to contain message properties for various message types, including JMS message properties. Which headers (if any) a IBM MQ message contains depends on the intended recipient.
- Message Properties
- IBM MQ message properties were introduced with the IBM MQ Version 7.0 JMS client. A IBM MQ message property is data associated with a message, consisting of a textual name and a value of a particular type. IBM MQ message properties are used by message selectors to filter publications to topics or to selectively get messages from queues. IBM MQ message properties can be used to include business data or state information without having to store it in the application data. Applications do not have to access data in the MQMD or MQRFH2 headers because the fields in these data structures can be accessed as IBM MQ message properties.
- Message payload
- The message payload is the data (if any) that follows the last message header, or that follows the MQMD if there are no message headers.
For more information about IBM MQ messages, see the Application Programming Guide and Application Programming Reference sections of the IBM MQ documentation.
IBM MQ implementation of a JMS message
IBM MQ provides a programming interface called the Message Queue Interface (MQI). This interface allows applications to process the components of a IBM MQ message using a variety of programming languages. IBM MQ also provides a JMS programming interface which allows applications to process an IBM MQ message as a JMS message. In this case the JMS message body is usually the IBM MQ message payload. However the JMS message body can include IBM MQ message headers or, if you are using IBM MQ Version 7.x, IBM MQ message properties, or both. For details of IBM MQ support for JMS, see the Using Java section of the IBM MQ documentation.