3.3.4.1 Pull Transaction
The Pull Transaction event MUST be signaled by the higher-layer business logic with the following arguments:
Partner transaction manager address.
Superior's Transaction Identifier. See [RFC2371] section 13 for information on this TIP command.
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.