1.3.1.2.1 Transaction Recovery

The atomicity property of a transaction guarantees that all participants in the transaction will receive the same outcome. In order to honor this guarantee, transaction managers have to be capable of recovering from transient failures.

After a transient failure, the transaction manager reloads the xa_switches of each of the registered XA Resource Managers and polls each one for incomplete transactions. It then proceeds to inform the XA Resource Managers of the outcomes of the transactions.

The following sequence diagram is a schematic of the interactions that take place between the various software components involved when recovering from a transient failure.

XA Resource Manager Transaction recovery

Figure 7: XA Resource Manager Transaction recovery

The protocols involved are specified as follows:

  • The XA Interface between the XA Resource Manager Bridge Facet and the XA Resource Manager is implemented by the XA Resource Manager in a third-party component that is loaded by the XA Resource Manager Bridge Facet. The XA Interface implementation might generate messages that are implementation-specific and beyond the purview of this document.

  • The protocol between the XA Resource Manager Bridge Facet and the Core Transaction Manager Facet is specified in [MS-DTCO].

  • The intent of these interactions is similar to that of the Recovery protocol between a Transaction Manager and a Resource Manager as described in [MS-DTCO] section 1.3.4. However, [XOPEN-DTP] specifies that the Transaction Manager is responsible for initiating recovery rather than the Resource Manager.