When using _AMQ_SCHED_DELIVERY, the message order is incorrect if the consumer is connected late

Solution Verified - Updated -

Issue

  • When using _AMQ_SCHED_DELIVERY, the message order is incorrect if the consumer is connected late.
    • For example to reproduce the problem:
      1. Send messageA with "_AMQ_SCHED_DELIVERY = currentTime + 5s"
      2. Send messageB with "_AMQ_SCHED_DELIVERY = currentTime + 10s"
      3. Wait for 20s (message A and B will be able to be consumed from the queue)
      4. Connect with the consumer to consume the messages
        => The order of message retrieval is:
        [Expected result] message A and then message B, because Message A has a smaller _AMQ_SCHED_DELIVERY, and since it is sent first
        [Actual results ] message B and then message A
      • FYI, of course, if the consumer has been connected to the broker before the messages were sent, the messages can be retrieved in the correct order.
  • In AMQ Broker 6, the messages with AMQ_SCHED_DELIVERY were the expected message order.

Environment

  • Red Hat AMQ Broker 7.8.2
    • Core protocol JMS client library with 7.8.2

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content