1.3.3.3 Transaction Manager Role
The Transaction Manager Role is generally performed by specialized middleware software programs that provide transactional services to applications and resource managers.
The transaction manager role is typically responsible for the following tasks:
Providing the following services to applications and resource managers:
Beginning transactions
Completing transactions
Coordinating agreement with participants on the outcome of the transaction
Reaching the decision to commit
Ensuring the outcome decision is reliably distributed
Coordinating the process of recovery if failures occur
Coordinating the outcome of individual transactions by using the Two-Phase Commit protocol.
Coordinating recovery with other participants after a process or communication failure. See section 1.3.4 for recovery details.
A transaction manager is best understood as the aggregation of several cooperating software modules that work together to provide the services previously mentioned. This protocol calls these software modules facets, and assumes the presence of the following five facets:
A facet that acts as a core transaction manager
A facet that communicates with applications
A facet that communicates with resource managers
A facet that acts as a superior transaction manager
A facet that acts as a subordinate transaction manager
A transaction manager provides implementation-specific mechanisms to allow the facets to communicate with one another within the transaction manager itself.
In contrast, the transaction manager facets use the MSDTC Connection Manager: OleTx Transports Protocol as specified in [MS-CMPO], and the MSDTC Connection Manager: OleTx Multiplexing Protocol as specified in [MS-CMP], as transports for this protocol when they communicate with other participants (for example, applications, resource managers, and remote transaction managers). The subprotocols that are used to provide services to these participants are known as connection types. The specific connection types that are used in this protocol are specified in detail in section 3.
These facets are functionally dependent upon each other. A general-purpose transaction manager is composed of all five of these facets.
The following figure shows the transaction manager facets.
Figure 8: Transaction manager facets