A global transaction is a recoverable unit or work performed by one or more resource managers in a distributed transaction processing environment, coordinated by an external transaction manager.
The resources which are updated by the transaction can take many forms such as a database table, a messaging queue or the resources updated by the execution of a CICS® transaction. Each of these resources is managed by a resource manager. Where the recoverable resources updated by the global transaction are all managed by the same resource manager, a one-phase-commit protocol is adequate to ensure that all resources are updated in an atomic manner.
However, where the resources updated by a global transaction are managed by multiple resource managers, a two-phase-commit protocol is required. This protocol ensures the atomic nature of the transaction is maintained by ensuring that all resource managers update their resources in a consistent manner. The cicseciXA.rar supports the two-phase-commit XA protocol and enables J2EE applications to include CICS resources in such global transactions.
In both the one-phase-commit and XA scenarios a transaction manager is responsible for controlling the execution of the transaction and coordinating the resource managers to ensure that the transaction executes in an atomic manner.
An example of where this behavior would be required is an online flight booking, which uses one resource manager to debit a customer's bank account and another to reserve the customer a flight. The customer's account must be updated if - and only if - the flight is booked; and vice-versa.
For information on using XA transactions with J2EE applications, see Redpaper: Transactions in J2EE, REDP-2659-00.