]
Yong Hao Gao resolved JBMESSAGING-1894.
---------------------------------------
Resolution: Done
Transaction Rollback during client failover may cause duplicated
message
------------------------------------------------------------------------
Key: JBMESSAGING-1894
URL:
https://issues.jboss.org/browse/JBMESSAGING-1894
Project: JBoss Messaging
Issue Type: Bug
Components: JMS Clustering
Affects Versions: 1.4.0.SP3.CP14, 1.4.8.SP2
Reporter: Yong Hao Gao
Assignee: Yong Hao Gao
Fix For: 1.4.0.SP3.CP15, 1.4.8.SP3
The following scenario shows how a duplicated message is produced:
1. A cluster of two nodes, node 1 and node 2, is up and running.
2. a message is delivered from node 1 to a consumer who receives it in a transaction.
3. for some reason the transaction is rolled back, in which the transaction is first
removed from the resource manager and then redelivers the message.
4. At the same time failover happens (node 1 dead), in which it will collect the ACK list
from resource manager and recover them to the new node (node 2).
5. because lack of synchronization, if in step 3 after the tx is removed and the message
is re-delivered (locally) to the consumer, but before the tx is committed, the fail over
happens and it won't get the message's ACK info ('cos the tx has been removed
already) and the message will be failed over to node 2 and redelivered.
6. So with the successful commit of the tx, the same message is delivered twice.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: