Partager via


3.4.7.18 Rollback Complete

The Rollback Complete event MUST be signaled with the following arguments:

  • An Enlistment object

If the Rollback Complete event is signaled, the transaction manager MUST perform the following actions:

  • If the connection referenced by the enlistment is of type CONNTYPE_TXUSER_BEGINNER (section 2.2.8.1.1):

    • If the connection state is Aborting Transaction:

      • Send a TXUSER_BEGINNER_MTAG_REQUEST_COMPLETED (section 2.2.8.1.1.9) message.

    • Set the connection state to Ended.

  • If the connection referenced by the enlistment is of type CONNTYPE_TXUSER_BEGIN2 (section 2.2.8.1.2) or CONNTYPE_TXUSER_PROMOTE (section 2.2.8.1.3):

    • If the connection state is Modifying Timeout:

      • Send a TXUSER_SETTXTIMEOUT_MTAG_TOO_LATE (section 2.2.8.1.2.8) message.

    • Otherwise, if the connection state is Active, Aborting Transaction, or Committing Transaction:

      • Send a TXUSER_BEGIN2_MTAG_SINK_ERROR (section 2.2.8.1.2.5) message.

        • The Error field MUST be set to TRUN_TXBEGIN_ERROR_NOTIFY_ABORTED.

    • Set the connection state to Ended.