internal override void InDoubt(InternalEnlistment enlistment, Exception e) { VolatileEnlistmentEnded.EnterState(enlistment); if (enlistment.Transaction._innerException == null) { enlistment.Transaction._innerException = e; } enlistment.Transaction.State.InDoubtFromEnlistment(enlistment.Transaction); }
// 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(); }
internal override void EnlistmentDone(InternalEnlistment enlistment) { // Move this enlistment to the ended state VolatileEnlistmentEnded.EnterState(enlistment); }
internal override void Aborted(InternalEnlistment enlistment, Exception e) { VolatileEnlistmentEnded.EnterState(enlistment); enlistment.Transaction.State.ChangeStateTransactionAborted(enlistment.Transaction, e); }
internal override void Committed(InternalEnlistment enlistment) { VolatileEnlistmentEnded.EnterState(enlistment); enlistment.Transaction.State.ChangeStateTransactionCommitted(enlistment.Transaction); }