[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Order of Deliveries between Backup and Live Node

clebert.suconic@jboss.com do-not-reply at jboss.com
Mon May 11 12:37:03 EDT 2009


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#4230133

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4230133



More information about the jboss-dev-forums mailing list