Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-3093

Cancelling pre-fetch buffer will break ordering with AMQP

XMLWordPrintable

    • Release Notes
    • +
    • Hide
      Previously, if AMQP messages in a pre-fetch buffer were returned to the queue, unacknowledged messages were returned in the wrong order. As a result of this issue, clients might later consume these messages in the wrong order, negatively affecting applications for which message ordering was important. This issue is resolved. Pre-fetched AMQP messages are always returned to the queue in the original order.
      Show
      Previously, if AMQP messages in a pre-fetch buffer were returned to the queue, unacknowledged messages were returned in the wrong order. As a result of this issue, clients might later consume these messages in the wrong order, negatively affecting applications for which message ordering was important. This issue is resolved. Pre-fetched AMQP messages are always returned to the queue in the original order.
    • Documented as Resolved Issue
    • ARTEMIS-2458
    • Verified in a release
    • Workaround Exists
    • Hide

      Use credits = 0 on AMQP clients.

      Show
      Use credits = 0 on AMQP clients.
    • Hide

      Attached is the test case class,
      Copy the below into the following location of artemis source

      \integration-tests\src\test\java\org\apache\activemq\artemis\tests\integration\amqp

      Show
      Attached is the test case class, Copy the below into the following location of artemis source \integration-tests\src\test\java\org\apache\activemq\artemis\tests\integration\amqp

      When rolling back the message order is corrupted.

      The issue is able to easily recreate using QPID's own Test suite, but pointing it at Artemis (AMQ7) instead of ActivMQ 5
      test in question that passes when pointing to ActiveMQ5, but fails and re-creates the ordering issue seen.

      org.apache.qpid.jms.transactions.JmsTransactedConsumerTest.testReceiveSomeThenRollback
      
      activemq5: passes
      artemis: fails - java.lang.AssertionError: Unexpected order of messages: [5, 4, 3, 1, 2]
      

        1. JmsTransactedConsumerTest.java
          4 kB
          Domenico Francesco Bruscino

              csuconic@redhat.com Clebert Suconic
              dbruscin Domenico Francesco Bruscino
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: