JMS Local Transactions in Clusters
In a JMS client application, you can use local transactions to group the messages sent and received in the cluster. A transaction commit means that all the produced messages are sent to a Broker in the cluster, and all the consumed messages are acknowledged. A transaction rollback means that all the produced messages are destroyed, and all the consumed messages are recovered from the cluster. For JMS local transactions, each Broker in the cluster on the consumer side is considered as a single XA Resource.
Internally, the webMethods API for JMS adopts the two-phase commit protocol for these local transactions. The two-phase commit ensures that each Broker in the transaction agrees on whether the transaction should be committed or not. Only when all the transacting Brokers agree for a transaction commit, is the commit() executed on the Brokers.