3.3.7.1.1 Pull TIP Transaction
The Pull TIP Transaction event MUST be signaled by using the following arguments:
If the Pull TIP Transaction event is signaled, the TIP interoperability provider MUST perform the following actions:
If the durable log of the Core Transaction Manager Facet is too full<8> to accept the provided transaction object:
Signal the TIP Pull Failure event on itself by using the following arguments:
The transaction object
The TIP error reason code
Using implementation-specific functionality, perform the TIP pull propagation of the transaction that is identified by the TIP URL that is specified by the RemoteTipTransactionUrl field of the transaction.
If the TIP pull propagation operation is successful:
Create a new enlistment object (as specified in [MS-DTCO] section 3.1.3.1) by using the following values:
TIP interoperability provider role as the Transaction Manager Facet, as specified in section 3.3.1.1.
The transaction object.
A null connection object.
Signal the Create Transaction event (as specified in [MS-DTCO] section 3.2.7.13) on the Core Transaction Manager Facet using the following arguments:
The Enlistment object.
Otherwise, if the TIP pull propagation operation fails:
Signal the TIP pull failure event on itself using the following arguments:
The transaction object.
A reason code that matches the cause of the failure, as follows:
TIP Connect Error: If the failure was caused by a connectivity issue.
Not Pulled: If the TIP transaction manager against which the pull was performed, replied with NOTPULLED. (For more information, see [RFC2371] section 13.)
TIP Error: If any other failure occurred.