Mapping AMQP and IBM MQ message fields
AMQP messages are composed of a header, delivery annotations, message annotations, properties, application properties, body, and footer.
AMQP messages are composed of the following parts:
- Header
- The optional header contains five fixed attributes of the message:
- durable - specifies durability requirements
- priority - relative message priority
- ttl - time to live in milliseconds
- first-acquirer - if this is true, the message has not been acquired by any other link
- delivery-count - the number of previous, unsuccessful delivery attempts.
- Delivery-annotations
- Optional. Specifies non-standard header attributes of the message for different intended audiences. Delivery annotations convey information from the sending peer to the receiving peer.
- Message-annotations
- Optional. Specifies non-standard header attributes of the message for different intended audiences. The message-annotations section is used for properties of the message which are aimed at the infrastructure and should be propagated across every delivery step.
- Properties
- Optional. This part is equivalent the MQ message descriptor. It contains the following fixed fields:
- message-id - application message identifier
- user-id - ID of creating user
- to - address of node that the message is destined for
- subject - the subject of the message
- reply-to - the node that the send replies to
- correlation-id - application correlation identifier
- content-type - MIME content type
- content-encoding - MIME content type. Used as a modifier to the content-type.
- absolute-expiry-time - the time when this message is considered expired
- creation-time - the time when this message was created
- group-id - the group that this message belongs to
- group-sequence - the sequence number of this message within its group
- reply-to-group-id - the group that the reply message belongs to
- Applications-properties
- Equivalent to MQ message properties.
- Body
- Equivalent to the MQ user payload.
- Footer
- Optional. The footer is used for details about the message or delivery that can only be calculated or evaluated after the whole bare message has been constructed or seen (for example, message hashes, HMACs, signatures and encryption details).
The AMQP message format is illustrated in the following figure:
The properties, application-properties, and application-data part are known as the
bare message. This is the message as sent by the sender, and is immutable. The receiver sees the entire message, including the header, footer, delivery-annotations and message-annotations.For a full description of the AMQP 1.0 message format, see the OASIS Standard at https://docs.oasis-open.org/amqp/core/v1.0/amqp-core-complete-v1.0.pdf.
- Mapping IBM MQ fields onto AMQP fields (outgoing messages)
When an IBM MQ message is published and IBM MQ sends it to an AMQP consumer, it will propagate some of the attributes of the IBM MQ message into equivalent AMQP message attributes.- Mapping AMQP fields onto IBM MQ fields (incoming messages)
When the AMQP channel receives a message and puts it to IBM MQ, it propagates some of the attributes of the AMQP message into equivalent IBM MQ message attributes.Parent topic: Developing AMQP client applications
Related information