3.3.7.4 Begin Rollback

The Begin Rollback event MUST be signaled with the following argument:

If the Begin Rollback event is signaled, the Transaction Manager Communicating with an LU 6.2 Implementation Facet MUST perform the following actions:

  • If the Connection field of the provided Enlistment object is not set:

    • For each LU Pair object in the LU Pair Table:

      • Attempt to find the first LUW object in the LUW List of the LU Pair object that meets the following condition:

        • The Transaction Identifier field of the LUW object is set to the value of the Transaction Identifier field of the provided Enlistment object.

      • If an LUW object is found:

        • Set the Local LU LUW State of the found LUW object to Reset.

        • Set the LUW Recovery State of the found LUW object to Need Recovery.

        • Signal the Recovery Work Ready event with the following arguments:

          • The LU Pair object

          • The Recovery Work Ready Reason set to LUW Recovery

  • Otherwise:

    • If the connection state is either Active or Prepared:

    • Otherwise, if the connection state is Processing Backout Request:

      • Send a TXUSER_DTCLURMENLISTMENT_MTAG_TO_LU_BACKEDOUT message using the connection referenced by the provided Enlistment object.

      • Set the Local LU LUW State field of the LUW object of the provided Enlistment object to Forget.

      • Signal the Enlistment Rollback Complete event on the Core Transaction Manager Facet with the following argument:

      • Set the connection state to Ended (section 3.3.1.4.9).

    • Otherwise, ignore the event.