3.2.5.8 Receiving PUSHED TIP Command

This event MUST be signaled with the following argument:

  • subordinate's transaction identifier

When the TIP superior transaction manager facet (section 1.3.1.2.1) receives a PUSHED TIP command, it MUST perform the following actions:

  • Test whether the receiving TIP connection object meets the following conditions:

    • The Connection Type field is set to Primary.

    • The State field is set to Idle Push.

  • If the receiving TIP connection does not satisfy the conditions, signal the Invalid TIP Command Event (section 3.4.7.1) and terminate the processing of this TIP command.

  • If the provided subordinate's transaction identifier does not have the OleTxTipTransactionIdentifier format, as specified in section 2.2:

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

      • The Partner Transaction Manager Address field of the enlistment object referenced by the receiving TIP connection object.

      • The provided subordinate's transaction identifier.

    • If this operation returns TRUE, notify the higher-layer business logic that the Push request failed, signal the Invalid TIP Command Event (section 3.4.7.1), and terminate the processing of this TIP command.

  • Signal the Create Subordinate Enlistment event on the core transaction manager facet with the following argument:

    • The enlistment object referenced by the receiving TIP connection.