3.3.4.1 Pull Transaction

The Pull Transaction event MUST be signaled by the higher-layer business logic with the following arguments:

If the Pull Transaction event is signaled, the TIP subordinate transaction manager facet MUST perform the following actions:

  • If the provided Superior's Transaction Identifier does not have the OleTxTipTransactionIdentifier format:

    • Call the TIP connection manager's HasPartnerTransaction operation with the following arguments:

      • The provided partner transaction manager address.

      • The provided Superior Transaction Identifier.

    • If HasPartnerTransaction returns TRUE, the Pull has already been completed, so notify the higher-layer business logic that the Pull request was completed successfully and terminate the processing of this event.

  • Otherwise:

    • Create a new transaction object with a new GUID as an identifier.

    • Create a new enlistment object with the following values:

      • The transaction field is set to the created transaction object.

      • The Partner Transaction Manager Address field is set to the provided partner transaction manager address.

      • The Partner Transaction Identifier is set to the provided Superior Transaction Identifier.

    • Signal the Create Superior Enlistment event ([MS-DTCO] section 3.2.7.12) on the core transaction manager facet with the following argument:

      • The new enlistment object.