With repeated failover between master and slave and mdb that consumers from A and sends to B in a transaction we can -
a) loose some messages acked as duplicates in error
b) duplicate some messages when acks are lost in error but don't force a rollback.
A long running test that consumers/produces 20k messages with a failover every 200 messages eventually shows up various problems. With XA recovery and async completion - there are many code path variations.