示例#1
0
 public void Dispose()
 {
     if (_heartbeatManager != null)
     {
         _heartbeatManager.Dispose();
     }
     _heartbeatManager = null;
     if (_takeOverElectionTask != null)
     {
         _takeOverElectionTask.Stop();
     }
     _takeOverElectionTask = null;
     if (_retryTask != null)
     {
         _retryTask.Stop();
     }
     _retryTask = null;
 }
示例#2
0
        internal bool AbortTakeoverMechanismTask(MembershipChangeArgs args)
        {
            if (args != null && args.ChangeType == MembershipChangeArgs.MembershipChangeType.TimeoutOnRestrictedPrimary)
            {
                if (LoggerManager.Instance.ShardLogger != null && LoggerManager.Instance.ShardLogger.IsInfoEnabled)
                {
                    LoggerManager.Instance.ShardLogger.Info("MembershipMgr.AbortTakeoverMechanismTask()", "Takeover unsuccessful. Beginning takeover retry task.");
                }
                if (_retryTask == null)
                {
                    _retryTask = new TakeoverRetryTask(this);
                }
                _retryTask.Start();


                if (_takeOverElectionTask != null && _takeOverElectionTask.IsStarted())
                {
                    _takeOverElectionTask.Stop();
                }
                return(true);
            }
            return(false);
        }