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)