3.2.4.1 Push Transaction
The Push Transaction event is triggered by the higher-layer business logic with the following arguments:
Partner transaction manager address
Transaction identifier
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).