3.3.7.3.6 Recover In Doubt Transaction

The Recover In Doubt Transaction event MUST be signaled with the following argument:

  • An enlistment object.

If the Recover In Doubt Transaction event is signaled, the TIP subordinate transaction manager facet (section 1.3.1.2.2) MUST perform the following actions:

  • Cancel the query timer (section 3.3.2.1) associated with the provided enlistment object.

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

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

  • If a TIP connection object cannot be obtained:

    • Create a query timer with the following arguments:

      • The provided enlistment object.

      • An implementation-specific timer value.

  • Otherwise:

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

    • Set the TIP Connection field of the provided enlistment object to the TIP connection.

    • Set the enlistment referenced by the TIP connection to be the provided enlistment.

    • Set the State of the TIP connection object to Idle.

    • Send a QUERY TIP command with the following argument:

      • The Partner Transaction Identifier field of the enlistment object referenced by the TIP connection object.

    • Set the State of the TIP connection object to Idle Query.