예제 #1
0
        public override void OnEvent(TmParticipantForgetEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.ForgetResponse(participant, Status.Success);
        }
        public override void OnEvent(TmRollbackEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.Aborted(participant);
        }
        public override void OnEvent(TmPrePrepareEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TwoPhaseCommitCoordinator.SendPrepare(participant);
            e.StateMachine.ChangeState(base.state.States.VolatilePrePreparing);
        }
        public override void OnEvent(TmCommitEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            base.state.TwoPhaseCommitCoordinator.SendCommit(participant);
            participant.SetCallback(e.Callback, e.CallbackState);
            e.StateMachine.ChangeState(base.state.States.DurableCommitting);
        }
        public override void OnEvent(TmPrepareEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.Prepared(participant);
            e.StateMachine.ChangeState(base.state.States.VolatilePrepared);
        }
예제 #6
0
        public override void OnEvent(TmRollbackEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.Aborted(participant);
            participant.StateMachine.ChangeState(base.state.States.SubordinateFinished);
        }
예제 #7
0
        public override void OnEvent(TmParticipantForgetEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.ForgetResponse(participant, Status.Success);
            e.StateMachine.ChangeState(base.state.States.DurableInDoubt);
        }
        public override void OnEvent(TmPrepareEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.ReadOnly(participant);
            e.StateMachine.ChangeState(base.state.States.DurableInDoubt);
        }
        public override void OnEvent(TmRollbackEvent e)
        {
            ParticipantEnlistment participant = e.Participant;

            base.state.TwoPhaseCommitCoordinator.SendRollback(participant);
            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.Aborted(participant);
            e.StateMachine.ChangeState(base.state.States.VolatileAborting);
        }
        public override void OnEvent(TmRejoinEvent e)
        {
            if (!base.state.Recovering)
            {
                DiagnosticUtility.FailFast("Rejoin events should only be delivered during recovery");
            }
            ParticipantEnlistment participant = e.Participant;

            participant.SetCallback(e.Callback, e.CallbackState);
            base.state.TransactionManagerSend.Rejoined(participant);
            e.StateMachine.ChangeState(base.state.States.DurableRejoined);
        }