I have been investigating
https://jira.jboss.org/jira/browse/JBMESSAGING-1558 and this is
what I have found so far:
On a regular flow, this is what happens when messages are delivered to Consumers:
[
img]https://jira.jboss.org/jira/secure/attachment/12326748/diagram1.png[/img]
References are aways backed up before delivered to Consumers. This process is totally
async. We will fire the replication and wait the callback, and when it's backed up, we
will deliver messages to the consumers.
However if the delivering messages are canceled for any reason. (that includes close, or
rollback):
[
img]https://jira.jboss.org/jira/secure/attachment/12326746/diagram2.png[/img]
QueueImpl::deliverAsync (or DeliverRunner->deliver) will remove references of the top
of the list on independently of the threads being used on the repplication.
As a result it may remove the message on LiveNode and when the message is repplicated the
backup will have a different element on the top list.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4230133#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...