2.1.2 Interaction with External Components

The following diagram shows the external components that interact with the transaction processing services.

Components interacting with the transaction processing services

Figure 2: Components interacting with the transaction processing services

Applications, application services, resource managers, external applications, external application services, external resource managers, and external transaction managers use a set of system interfaces to participate in a distributed transaction and perform transaction-processing-specific operations such as transaction marshaling, propagation, and recovery.

Applications and external applications use the system to:

  • Demarcate when a transaction begins and completes within a series of operations.

  • Marshal a transaction to other applications and resource managers.

  • Propagate a transaction from one transaction manager to another.

  • Perform administrative operations on a specific transaction or a transaction manager.

Resource managers and external resource managers use the system to:

  • Register with a transaction manager and perform recovery operations.

  • Enlist for a specific transaction and participate in the corresponding two-phase commit protocol notifications.

  • Vote on transaction outcomes.

External transaction managers use the system to:

The system can also be used by applications or other systems to provide transaction coordination semantics to higher-level applications. For example, application programming frameworks, such as the Microsoft .NET Framework, or a middle-tier application server system such as COM+ provide transaction processing services to their clients by providing a set of high-level interfaces, but in the background, they can use transaction processing services to fulfill the required transaction coordination semantics. This way, the complexity of interacting with the transaction processing services is minimized.