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
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.
- 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.
- 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
- 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
detachframe with the closed attribute set to true.Important:
- Qpid JMS behavior:
- You must call a Qpid JMS API command, for
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.Important:
- Qpid JMS behavior:
- If you call a Qpid JMS API command, for example,
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