3.6 Example 6: Distributed Transaction Coordination with External Components

This example demonstrates how a transaction is completed and committed with external components by making use of optional protocols, as described in the following use cases:

  • Transaction Management – Management Tool (section 2.5.3)

  • Create a Transaction – Application (section 2.5.6.1)

  • Enlist in a Transaction – Resource Manager (section 2.5.6.2)

  • Perform Transaction Work with Pull Propagation – Application (section 2.5.6.3)

  • Perform Transaction Work with Push Propagation – External Application (section 2.5.6.4)

  • Drive Completion of a Transaction – Root Transaction Manager (section 2.5.6.5)

Prerequisites:

  • Transaction processing services protocols meet all the preconditions, as described in section 2.4.

  • Transaction processing services are operational.

  • The application can access a transaction manager in the system.

  • The resource manager can access the transaction manager that it has to contact to enlist in the transaction.

  • The computers involved are connected on the network.

  • The two transaction managers are on separate computers and can access each other.

  • The transaction managers in the system on each of the computers are operational.

  • Both the external application and the external transaction manager can access a transaction manager in the system.

  • The external application and the external transaction manager are on separate computers.

  • The transaction manager can access the participants in the transaction.

Initial System State

No transaction has been performed by the external application.

Final System State

A two-phase commit has been done to complete the transaction which involves an external application.

Sequence of Events:

  • Precursory Message Exchange (section 3.6.1)

  • Application-Driven Transactional Message Exchange (section 3.6.2)

  • Two-Phase Commit Transactional Message Exchange (section 3.6.3)