3.2.4.1 Push Transaction

The Push Transaction event is triggered by the higher-layer business logic with the following arguments:

If the Push Transaction event is signaled, the TIP superior transaction manager facet (section 1.3.1.2.1) MUST perform the following actions:

  • Attempt to find a transaction object in the transaction table referenced by the core transaction manager facet that meets the following requirement:

    • The Transaction Identifier field is set to the provided transaction identifier.

  • If a transaction object is not found, notify the higher-layer business logic that the Push request failed and terminate the processing of this event.

  • Create a new enlistment object with the following settings:

    • The transaction object is set to the transaction object that was found.

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

  • Call the TIP connection manager's GetTipConnectionFromAddress operation with the following parameter:

    • The Partner Transaction Manager Address field of the enlistment object.

  • If a TIP connection object cannot be obtained, notify the higher layer that the Push request failed and terminate the processing of this event.

  • If the value of the Allow Network Transactions flag or the Allow Outbound Transactions flag is FALSE:

    • Call the TIP connection manager's TerminateTipConnection operation with the following argument:

      • The TIP connection object.

    • Notify the higher layer that the Push request failed and terminate the processing of this event.

  • Set the enlistment object's TIP Connection field to the TIP connection object.

  • Set the TIP connection object's Enlistment field to the enlistment object.

  • Set the TIP connection object's State field to Idle Push.

  • Call the Transaction Identifier Converter's Convert Transaction Identifier to TIP Transaction Identifier operation (section 3.1.1.5.2) with the following argument:

    • The Transaction Identifier field of the transaction object referenced by the enlistment.

  • Send a PUSH (section 2.2.5) TIP command with the following argument:

    • Return value from Transaction Identifier Converter's Convert Transaction Identifier to TIP Transaction Identifier operation (section 3.1.1.5.2).