Non-transactional and exclusive consumer may receive messages out-of-order.
---------------------------------------------------------------------------
Key: AMQ-1897
URL: https://issues.apache.org/activemq/browse/AMQ-1897
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.1.0
Environment: Environment:
* ActiveMQ 5.1.0
* one broker using direct jdbc persistence (mysql)
* transacted producer
* non-transacted consumer!
* 3 consumers but all configured for exclusive consumer
* 1 producer that publishes msgs faster than consumers
* consumer using SESSION.AUTO_ACKNOWLEDGE
Reporter: Torsten Mielke
Priority: Critical
With an env as described above it is possible to violate the exclusive consumer
limitation. Initially with all three consumers being started and the producer
sending messages, the exclusive consumer feature works fine.
However if you kill and restart each consumer in a row, allowing another
consumer to take over the exclusive right, you will eventually reach a state
where a message that was already consumed by the previous exclusive consumer
gets redelivered to the new exclusive consumer that has taken over the work.
As consumers are non-transactional, they will autocommit every single message
received, so each msgs gets deleted from the jdbc db sequentially. Hence if
another exclusive consumer takes over it should only process messages >= the
message number of the previous exclusive consumer. However this is not the case.
This bug is kind of related to AMQ-1896.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.