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.