1.3.5.2 Push Propagation

Push propagation enables the targeted marshaling of a transaction from one participant to another. Push propagation is available only when the source knows the contact information for the destination transaction manager in advance.

Push propagation consists of two distinct logical operations: an export operation and an import operation.

The following sequence of events represents a complete push propagation operation between two participants:

  1. The source obtains contact information for the destination transaction manager by using implementation-specific means. The contact information consists of whatever the source needs to construct an SWhereabouts structure, as specified in section 2.2.5.11. This step need be performed only one time per destination because the contact information is not specific to a specified transaction or propagation.

  2. When the source determines that it possesses a transaction that it wants to share with the destination, the source asks its transaction manager to export the transaction to the destination transaction manager by using the contact information it obtained in the previous step.

  3. The source transaction manager contacts the destination transaction manager by using the provided contact information and informs it of the existence and details of the transaction. This inter–transaction manager handshake is the export operation of push propagation.

  4. When the source transaction manager receives acknowledgment from the destination transaction manager, the export operation is complete. If the destination transaction manager was not already a participant in the transaction, the destination transaction manager is now enlisted as a subordinate transaction manager at the source transaction manager, which acts as the superior transaction manager.

  5. After the source transaction manager informs the source that the transaction was successfully exported, the source then uses an implementation-specific mechanism to marshal the exported transaction to the destination. The marshaled information can take any form that the source and destination agree on but is sufficient for the source to construct an STxInfo structure as specified in section 2.2.5.10.

  6. The destination uses the marshaled information that is provided by the source to request an import operation from its transaction manager. The import operation is typically a simple confirmation that the transaction exists and was correctly exported to the destination.

  7. If the import operation is successful, the destination transaction manager reports success to the destination. The destination performs further operations on the transaction with its associated transaction manager or marshals the transaction further to other participants.

The following figure depicts a typical push propagation.

Transaction manager push propagation

Figure 10: Transaction manager push propagation