コード例 #1
0
        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);
        }
コード例 #2
0
        // 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();
        }
コード例 #3
0
        // 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();
        }
コード例 #4
0
 internal override void EnlistmentDone(InternalEnlistment enlistment)
 {
     // Move this enlistment to the ended state
     VolatileEnlistmentEnded.EnterState(enlistment);
 }
コード例 #5
0
        internal override void Aborted(InternalEnlistment enlistment, Exception e)
        {
            VolatileEnlistmentEnded.EnterState(enlistment);

            enlistment.Transaction.State.ChangeStateTransactionAborted(enlistment.Transaction, e);
        }
コード例 #6
0
 internal override void Committed(InternalEnlistment enlistment)
 {
     VolatileEnlistmentEnded.EnterState(enlistment);
     enlistment.Transaction.State.ChangeStateTransactionCommitted(enlistment.Transaction);
 }