Exemple #1
0
        protected void SetDurableCoordinatorActive(MsgRegisterDurableResponseEvent e)
        {
            CoordinatorEnlistment coordinator = e.Coordinator;

            coordinator.SetCoordinatorProxy(e.Proxy);
            coordinator.OnDurableCoordinatorActive();
            if (RegisterCoordinatorRecord.ShouldTrace)
            {
                RegisterCoordinatorRecord.Trace(coordinator.EnlistmentId, coordinator.SuperiorContext, ControlProtocol.Durable2PC, e.Proxy.To, this.state.ProtocolVersion);
            }
        }
        public override void Enter(StateMachine stateMachine)
        {
            base.Enter(stateMachine);
            CoordinatorEnlistment coordinator = (CoordinatorEnlistment)stateMachine.Enlistment;

            if (coordinator.RegisterVolatileCoordinator == null)
            {
                DiagnosticUtility.FailFast("CoordinatorVolatileActive requires RegisterVolatileCoordinator");
            }
            if (RegisterCoordinatorRecord.ShouldTrace)
            {
                RegisterCoordinatorRecord.Trace(coordinator.EnlistmentId, coordinator.SuperiorContext, ControlProtocol.Volatile2PC, coordinator.RegisterVolatileCoordinator.CoordinatorProxy.To, base.state.ProtocolVersion);
            }
            TmEnlistPrePrepareEvent enlistPrePrepareEvent = coordinator.EnlistPrePrepareEvent;

            coordinator.EnlistPrePrepareEvent = null;
            coordinator.SetCallback(enlistPrePrepareEvent.Callback, enlistPrePrepareEvent.CallbackState);
            base.state.TransactionManagerSend.EnlistPrePrepareResponse(coordinator, Status.Success);
        }