Transactions
Transactions can be used to group a set of Guaranteed messages to be published or consumed or both as an atomic unit of work.
Combining messaging operations in an atomic unit ensures the integrity of messaging operations that depend on one another. If any single failure occurs, the whole transaction can be rolled back so that any published messages are deleted, and any messages to be consumed remain on the endpoints they were spooled to. After a rollback, you can then take corrective action to address the failure.
A Solace PubSub+ event broker can support transactions in both local transacted sessions, or in transaction branches within an XA session that can be used in global distributed transactions:
- Transacted Sessions: Transacted sessions enable client applications to encapsulate multiple message send or receive or both operations together in single atomic transactions. Transacted sessions can be considered as local sessions, in that they only involve a single resource—the event broker. Unlike transaction branches, they cannot be included in a global XA transaction that spans multiple network resources.
- XA Transaction Branches: Transaction branches are similar to transactions contained within a local transacted session in that they encapsulate multiple message send or receive or both operations as single atomic units, but transaction branches are to be used in a larger distributed transaction.
Transacted sessions are supported by the Solace JCSMP, Java RTO, C, .NET, and JMS messaging APIs.
Transaction branches are created within an XA session that the event broker, which acts as a resource manager, handles. Each of these transaction branches can be included in distributed XA transactions that involve other transaction branches from separate, networked Java resources. It's the responsibility of remote Transaction Manager software to manage the transaction branches used in a distributed transaction in a coordinated way.
XA transaction branches are only supported by the Solace implementation of the JMS API.
Solace does not offer a Transaction Manager. However, to allow you to integrate Solace PubSub+ with Java Platform Enterprise Edition (Java EE) application server environments, Solace provides a Java Connector Architecture (JCA) v1.5 resource adapter for Red Hat JBoss EAP 6.2, WebSphere V7 and V8, as well as WebLogic 11gR1 PS5 and newer. The Solace JCA resource adapter is provided as standalone resource adapter archive (RAR) file that includes embedded versions of the Solace JMS API libraries. For more information, contact Solace.