[MQ 9.2.1 Dec 2020][AIX, Linux, Windows]

Point-to-point support on AMQP channels

The IBM® MQ AMQP channel provides support for sending messages to queues and receiving messages from queues.

AMQP clients like an Apache Qpid™ JMS library request a queue or temporary-queue capability when sending the AMQP attach frame. Capabilities allow the AMQP channel to identify the object as a queue, temporary-queue or topic. In the absence of either a queue or temporary-queue capability, or even any of the capabilities, the request is assumed to be for a topic.

IBM MQ AMQP channels provide queue type support for the following:
Queue receive and send
Messages can be sent to a queue and consumed from a queue. For consuming messages, both synchronous and asynchronous modes are supported.
[MQ 9.2.2 Mar 2021]Queue browse message
As well as putting messages to a queue and getting messages from a queue, messages can also be browsed from a queue.
Temporary queue support
Messages can be sent to a temporary queue and consumed from a temporary queue. Note that temporary queue deletion is supported, if the same temporary queue object used to create the temporary queue is also used to delete the temporary queue.
The SYSTEM.DEFAULT.MODEL.QUEUE is used when creating a temporary queue, and the prefix for the temporary queue will be AMQP.*.
The SYSTEM.DEFAULT.MODEL.QUEUE is by default a temporary dynamic queue, but you can use the Definition type property on the SYSTEM.DEFAULT.MODEL.QUEUE queue to change the queue to be a permanent dynamic queue.
Permanent dynamic queue
A permanent dynamic queue is deleted when an AMQP client, such as an Apache Qpid JMS library, sends a request with a detach frame with the closed attribute set to true.
Qpid JMS behavior:
You must call a Qpid JMS API command, for example, the javax.jms.TemporaryQueue.delete() method to destroy the queue after use and this process also clears the messages present on the queue.
If you do not issue such a command, the queue remains with any messages still present, when the connection is closed.
Temporary dynamic queue
A temporary dynamic queue is deleted when AMQP client closes the connection.
Qpid JMS behavior:
If you call a Qpid JMS API command, for example, the javax.jms.TemporaryQueue.delete() method, close the JMS connection, or the connection breaks, the queue is deleted and any messages are lost.
Closing a JMS session in itself does not cause the temporary queue to be deleted, even though the temporary queue could have been created using the javax.jms.Session.createTemporaryQueue() method.