Local Transactions

A session can be configured as transacted, and
the JMS API provides methods for initiating, committing, or rolling back local transactions.

As messages are produced or consumed within a local transaction, the
message service tracks the various sends and receives, completing these operations
only when the JMS client issues a call to commit the transaction. If a particular
send or receive operation within the transaction fails, an exception is raised.
The client code can handle the exception by ignoring it, retrying the operation,
or rolling back the entire transaction. When a transaction is committed, all
its operations are completed. When a transaction is rolled back, all successful
operations are cancelled.

The scope of a local transaction is always a single session. That is,
one or more producer or consumer operations performed in the context of a
single session can be grouped into a single local transaction.