Transactions can be used to group a set of Guaranteed messages to be published and/or be consumed as an atomic unit of work.
Combining the 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, an administrator can then take corrective action to address the failure.
A Solace router 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 and/or receive operations together in single atomic transactions. Transacted sessions can be considered as local sessions, in that they only involve a single resource—the Solace router. 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 and/or receive operations as single atomic units, but transaction branches are to be used in a larger distributed transaction.
- Transaction branches are created within an XA session that the Solace router, 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 is the responsibility of remote Transaction Manager software to manage the transaction branches used in distributed transaction in a coordinated way.
Transacted sessions are supported by the Solace Java, Java RTO, C, .NET, and JMS messaging APIs.
XA transaction branches are only supported by the Solace implementation of the JMS API.
Note: Solace does not offer a Transaction Manager. However, to allow administrators to integrate the Solace Messaging Platform 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 support.
Cut-Through Messaging allows for the delivery of Guaranteed messages with very low latency from the Solace Messaging Platform to consumers. This is done by using the low-latency, Direct Messaging data path for the bulk of the message flow, while also relying on the Guaranteed Messaging data path for message recovery in the event of a message loss.
Cut-Through Messaging is a controlled availability feature. For more information on using Guaranteed Messaging with a cut-through message mode, contact Solace support.