AMQP 1.0 support
AMQP channels provide a level of support for AMQP 1.0-compliant applications.
AMQP channels support a subset of the AMQP 1.0 protocol. You can connect AMQP 1.0 compatible clients to an IBM® MQ AMQP channel. To use all of the messaging features supported by AMQP channels, you must correctly set the value of certain AMQP 1.0 fields.
This information outlines the way AMQP fields must be formatted and lists the features of the AMQP 1.0 specification that are not supported by AMQP channels.
The following features of the AMQP 1.0 specification are either not supported or are limited in their use:
ATTACH frame
topic
temporary queue
queue
shared
Capabilities imply the type of object, and in the case of multi-capabilities, the order of priority of selecting the capability is topic, temporary-queue, queue.
distribution-Mode
on the ATTACH frame
to contain one of the following, for a source or target:- move
- copy
distribution-Mode
is not set, or set to anything other than
copy, move is assumed.Link names
AMQP channels expect the name of an AMQP link to follow one of five formats:- A plain topic (for publishing and subscribing)
- Publishing messages: a plain topic string (for example, a link name of
"/sports/football"
) causes a message to be published on the/sports/football
topic. - Subscribing to a topic to receive messages: a plain topic string (for example, a link name of
"/sports/football"
causes a subscription to be defined on the/sports/football
topic.
- Publishing messages: a plain topic string (for example, a link name of
- A private verbose topic (for subscribing)
- A verbose topic string that describes a private subscription in the form:
"private:topic string"
(for example:"private:/sports/football"
). The behavior is identical to a plain topic string. Theprivate
declaration differentiates a subscription specific to a particular AMQP client from a subscription shared between clients.
- A verbose topic string that describes a private subscription in the form:
- A shared verbose topic (for subscribing)
- A verbose topic string that describes a shared subscription in the form:
"share:share name:topic string"
(for example:"share:bbc:/sports/football"
).
- A verbose topic string that describes a shared subscription in the form:
- A queue (for point to point messaging for producer and consumer)
- Producer to send messages; a queue name string causes a producer to send a message on a queue.
- Consumer to receive messages; a queue name string causes a consumer to receive messages from a queue.
- Blank (for point to point messaging on a temporary queue )
- Producer to send messages on a temporary queue; Blank causes a producer to send a message on a temporary queue.
- Consumer to receive messages on a temporary queue; Blank causes a consumer to receive messages from a temporary queue.
Maximum lengths for topic strings, share names, and client IDs
The topic string, share name, and client ID must be contained within 10237 bytes. In addition, the maximum length of a client ID is 256 characters.
- a very long topic string, provided that the share name is short
- a long share name, but a short topic string
Container IDs
AMQP channels expect the container-id of an AMQP Open performative to contain a unique AMQP client ID. The maximum length of an AMQP client ID is 256 characters and the ID can contain alphanumeric characters, percent sign (%), slash (/), period (.) and underscore (_).
Sessions
AMQP channels support only a single AMQP session. An AMQP client that attempts to create more than one AMQP session receives an error message and is disconnected from the channel.Transactions
AMQP channels do not support AMQP transactions. An AMQP attach frame that attempts to coordinate a new transaction or an AMQP transfer frame that attempts to declare a new transaction is rejected with an error message.Delivery state
AMQP channels only support a delivery state for disposition frames of Accepted, Released, or Modified. Note that, where a state of Modified is used, AMQP channels do not support the undeliverable-here option.