1.3.1.1.1 Transaction Enlistment and Completion

The following sequence diagram is a schematic of the interaction that takes place between the various software components involved in the usage scenario when an OleTx Resource Manager is enlisted in a transaction coordinated by an XA Transaction Manager, and the transaction is committed.

XA Superior Transaction enlistment and completion

Figure 3: XA Superior Transaction enlistment and completion

The protocols involved are specified as follows:

The interface between the XA Transaction Manager and the XA Superior Transaction Manager is specified in [XOPEN-DTP], with the following exceptions:

  • There is an additional implementation-specific XA Lookup event.

  • The ax_reg and the ax_unreg APIs are not used.

To enlist the OleTx Resource Managers, the XA Transaction Manager first calls xa_start function on the XA Superior Transaction Manager, passing in an XID. This will cause an OleTx transaction to be created in the XA Subordinate Transaction Manager Facet, which will be passed back to the XA Superior Transaction Manager. The XA Transaction Manager then triggers the XA Lookup event on the XA Superior Transaction Manager, passing in the XID, which will return the OleTx transaction.

The OleTx Resource Managers are then enlisted in the OleTx transaction as specified in [MS-DTCO] section 3.5.

The XA Transaction Manager then follows the Two-Phase Commit Protocol.