Streaming queues configuration
The streaming queues feature of IBM® MQ is configured by the administrator on individual queues, and the messages are streamed by the queue manager, not by the application itself.
- Best effort
- In this mode, the queue manager considers it more important that delivery of the original message is not affected by delivery of the streamed message.
- Must duplicate
- In this mode, the queue manager ensures that both the original message and the streamed message are successfully delivered to their queues.
See How you configure streaming queues for information on the additional attributes added to local and model queues enabling message streaming.
Streamed messages
In most cases, the copy of the message delivered to the second queue is a duplicate of the original message. This includes all of the message descriptor fields, including the message ID and correlation ID. The streamed messages are intended to be very close copies of the original messages, so that they are easier to find and, if necessary, replay them back into another IBM MQ system.
- The expiry of the streamed message is set to MQEI_UNLIMITED, regardless of the expiry of the original message. If CAPEXPRY has been set on the secondary queue its value is used to set the expiry time of the streamed message.
- If any of the following report options are set on the original message, they are not enabled on
the streamed message. This is to ensure that no unexpected report messages are delivered to
applications that are not designed to receive them:
- Activity reports
- Expiration reports
- Exception reports
- Confirmation on arrival (COA)
- Confirmation on delivery (COD)
Due to the near-identical nature of the streamed messages, most of the attributes of the secondary queue have no affect on the message descriptor fields of the streamed message. For example, the DEFPSIST and DEFPRTY attributes of the secondary queue have no affect on the streamed message.
- CAPEXPRY attribute
If the secondary queue has been configured with a CAPEXPRY attribute, this expiry cap is applied to the expiry of the streamed message.
- DEFBIND for cluster queues
If the secondary queue is a cluster queue, the streamed message is put using the bind option set in the DEFBIND attribute of the secondary queue.