Well... there's no much you can do about this other than implement duplicate message
detection (there's already a task for this).
What you could do though, is isolate the exact case in a test.
This should be easy: Use the PoisonInterceptor to crash the server as a call to send() is
returning. Send a persistent message, then we know the message is in storage after the
send, but the client will receive an exception, then try and send the message again, and
you'll get an exception (probably PK violation).
This would be solved properly by duplicate message detection.
Also, for a partial solution, we could introduce a flag "ignore PK violations"
which ignores the send if it's already in the database.
That solution would only be partial since you could still get duplicate messages sent
since the original one might be acked before the second copy is sent, but at least it
means that failover will work ok.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4011303#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...