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.
Attachments
Issue Links
- links to