Description
It is an anti pattern, but a new consumer per message loop can fail with openwire. the remove is non blocking, so a new consumer can co exist with the async cancel/add sorted of the previpous consumer. This breaks ordering that is required for the delivery count logic around unconsumed prefetched messages.
the workaround is to use prefetch=1 but the underlying problem is real, in 5.x the cancel/add_sorted is done in the same thread as remove. In artemis, the storage manager handles this async.
A fix is to wait for the operation context complete on handling the removeConsumer command.
Attachments
Issue Links
- is related to
-
ARTEMIS-4410 Openwire prefetched messages can be out of order after failover to an exclusive queue
- Closed