This is a summary of what we discussed today at:
http://www.antwerkz.com/javabot/javabot/home/3/%23jbossmessaging/2/07/1/0...
(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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...