MQ Connectivity throughput and message order

Eclipse Amlen can handle a higher volume of messages than IBM® MQ. To deal with the higher volume of messages, you can maximize message throughput by using multiple IBM MQ queue managers to handle the load. However, using multiple queue managers does not preserve the order of the messages.

When messages are moved from IBM MQ to Eclipse Amlen, persistent messages are forwarded within transactions, and forwards nonpersistent messages immediately. Therefore, nonpersistent messages can be forwarded before earlier persistent messages are forwarded within a transaction. In this case, message order is not preserved.

When MQTT messages are moved from Eclipse Amlen to IBM MQ, QoS 1 and QoS 2 messages are forwarded within transactions, and forwards QoS 0 messages immediately. Therefore, QoS 0 messages can be forwarded before earlier QoS 1 and QoS 2 messages are forwarded within a transaction. In this case, message order is not preserved.

When JMS messages are moved from Eclipse Amlen to IBM MQ, both JMS persistent and nonpersistent messages are forwarded within transactions. If a nonpersistent message has the ConnectionFactory property DisableACK set, the message is forwarded immediately. Therefore, nonpersistent JMS messages with DisableACK set can be forwarded before earlier JMS messages are forwarded within a transaction. In this case, message order is not preserved.

To preserve the order of the messages, you must use only a single queue manager connection to send or receive messages of the same persistence.

If IBM MQ cannot keep up with the volume of messages that Eclipse Amlen forwards, a backlog of messages forms on Eclipse Amlen. The number of messages that can be in this backlog is defined by the max message parameter of a destination mapping rule. For more information about the behavior of messages when the max message count is reached, see Has the maximum message limit been reached?.