Gary Tully created ARTEMIS-4480:
-----------------------------------

             Summary: exclusiveConsumer needs sequential operation context 
completion callbacks to ensure isolation for delivered and transacted messages
                 Key: ARTEMIS-4480
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4480
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: Broker, OpenWire
            Reporter: Gary Tully
            Assignee: Gary Tully


in order to see order on a queue from a consumer perspective, the consumer must 
be exclusive. Any pending work for any previous consumer, delivered put back on 
the queue or pending transaction completion rollback or commit or close must 
have occurred before dispatch to a new consumer resumes.

The removal of the consumer must wait to release the exclusive consumer flag. 
To do this it must be able to be sure that all previous completions on the 
context are done.

This requires some additions to our operation context to enforce sequential 
completion rather than the current sequential start.

This problem was visible with openwire which typically has a large prefetch, 
resulting in many messages in the delivering list, moved there on rollback from 
the acks list. When contention on the opernwire connection was resolved, the 
operation context nondeterminism on completion callback order became visible.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to