[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Failover & Paiging...

clebert.suconic@jboss.com do-not-reply at jboss.com
Wed Jan 7 16:00:38 EST 2009


This is a summary of what we discussed today at:

http://www.antwerkz.com/javabot/javabot/home/3/%23jbossmessaging/2/07/1/01/0/2009/ (starting at [10:41])


The basic problem is when the ACK is replicated to the backup node, the message eventually will be on page file, and replicateACK may fail for not being able to locate the ID on the queue:


   public void deliverReplicated(final long messageID) throws Exception
  |    {
  |       // It may not be the first in the queue - since there may be multiple producers
  |       // sending to the queue
  |       MessageReference ref = messageQueue.removeReferenceWithID(messageID);
  | 
  |       if (ref == null)
  |       {
  |          throw new IllegalStateException("Cannot find ref when replicating delivery " + messageID);
  |       }
  | 
  | 

So fix that, based on our discussion, I'm going to change DuplicateID detection to work at Queue level (not Address), and when ref == null, I'm going to add a new ID to be ignored on the Queue.

That will require some synchronization on route when duplicateID != null.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4200184#4200184

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



More information about the jboss-dev-forums mailing list