Transactions

A (non-XA) transaction is considered active when at least one message has been sent or received by the session, and the transaction has not been successfully committed. An XA transaction is considered active when the XA start method is called.

After a failover, attempting to commit the active transaction results in a javax.jms.TransactionRolledBackException. Clients that use transactions must handle this exception, and resend any messages sent during the transaction. The standby server, upon becoming active, automatically redelivers any messages that were delivered to the session during the transaction that rolled back.