// The enlistment says to abort start the abort sequence. internal override void ForceRollback(InternalEnlistment enlistment, Exception e) { // Change enlistment state to aborting VolatileEnlistmentEnded.EnterState(enlistment); // Start the transaction aborting enlistment.Transaction.State.ChangeStateTransactionAborted(enlistment.Transaction, e); // Process Finished InternalEnlistment enlistment.FinishEnlistment(); }
// The enlistment says to abort start the abort sequence. internal override void ForceRollback(InternalEnlistment enlistment, Exception e) { // Change enlistment state to aborting VolatileEnlistmentEnded.EnterState(enlistment); // Record the exception in the transaction if (enlistment.Transaction._innerException == null) { // Arguably this is the second call to ForceRollback and not the call that // aborted the transaction but just in case. enlistment.Transaction._innerException = e; } // Process Finished InternalEnlistment enlistment.FinishEnlistment(); }