[ 
https://issues.apache.org/jira/browse/ARTEMIS-4480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Tully updated ARTEMIS-4480:
--------------------------------
    Description: 
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 consistent use of the operation context to enforce sequential 
completion.

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 of a transaction.

  was:
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.


> exclusiveConsumer release needs an 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
>            Priority: Major
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> 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 consistent use of the operation context to enforce sequential 
> completion.
> 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 of a transaction.



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

Reply via email to