private void RunChecks()
 {
     TaskLogger.LogEnter();
     try
     {
         DatabaseHealthValidationRunner validationRunner = new DatabaseHealthValidationRunner(this.m_serverName);
         if (this.AreConfigBitsSet(ServerConfig.DagMember))
         {
             using (DagMemberMultiChecks dagMemberMultiChecks = new DagMemberMultiChecks(this.m_serverName, this.m_eventManager, "MSExchange Monitoring ReplicationHealth", this.TransientEventSuppressionWindow, ADObjectWrapperFactory.CreateWrapper(this.m_dag)))
             {
                 this.RunMultiChecks(dagMemberMultiChecks);
             }
         }
         if (this.m_useReplayRpc)
         {
             ReplicationCheckGlobals.UsingReplayRpc = true;
         }
         if (this.AreConfigBitsSet(ServerConfig.RcrSource))
         {
             using (RcrSourceMultiChecks rcrSourceMultiChecks = new RcrSourceMultiChecks(this.m_serverName, this.m_eventManager, "MSExchange Monitoring ReplicationHealth", validationRunner, this.m_replayConfigs, ReplicationCheckGlobals.CopyStatusResults, this.TransientEventSuppressionWindow))
             {
                 this.RunMultiChecks(rcrSourceMultiChecks);
             }
         }
         if (this.AreConfigBitsSet(ServerConfig.RcrTarget) && this.m_dag.ThirdPartyReplication != ThirdPartyReplicationMode.Enabled)
         {
             using (TargetCopyMultiChecks targetCopyMultiChecks = new TargetCopyMultiChecks(this.m_serverName, this.m_eventManager, "MSExchange Monitoring ReplicationHealth", validationRunner, this.m_replayConfigs, ReplicationCheckGlobals.CopyStatusResults, this.TransientEventSuppressionWindow))
             {
                 this.RunMultiChecks(targetCopyMultiChecks);
             }
         }
         if (this.IsServerStandaloneWithNoReplicas())
         {
             using (StandaloneMultiChecks standaloneMultiChecks = new StandaloneMultiChecks(this.m_serverName, this.m_eventManager, "MSExchange Monitoring ReplicationHealth", this.TransientEventSuppressionWindow))
             {
                 this.RunMultiChecks(standaloneMultiChecks);
             }
         }
     }
     finally
     {
         TaskLogger.LogExit();
     }
 }
        internal static Exception InitializeValidationRunner(DatabaseHealthValidationRunner runner)
        {
            Exception result = null;

            try
            {
                runner.Initialize();
            }
            catch (MonitoringADConfigException ex)
            {
                result = ex;
            }
            catch (AmServerException ex2)
            {
                result = ex2;
            }
            catch (AmServerTransientException ex3)
            {
                result = ex3;
            }
            return(result);
        }
 public TargetCopyMultiChecks(string serverName, IEventManager eventManager, string momEventSource, DatabaseHealthValidationRunner validationRunner, List <ReplayConfiguration> replayConfigs, Dictionary <Guid, RpcDatabaseCopyStatus2> copyStatuses, uint ignoreTransientErrorsThreshold) : base(serverName, eventManager, momEventSource, validationRunner, replayConfigs, copyStatuses, ignoreTransientErrorsThreshold)
 {
 }
 public MultiReplicationCheck(string serverName, IEventManager eventManager, string momEventSource, DatabaseHealthValidationRunner validationRunner, List <ReplayConfiguration> replayConfigs, Dictionary <Guid, RpcDatabaseCopyStatus2> copyStatuses, IADDatabaseAvailabilityGroup dag, uint ignoreTransientErrorsThreshold)
 {
     this.m_ServerName       = serverName;
     this.m_EventManager     = eventManager;
     this.m_MomEventSource   = momEventSource;
     this.m_ValidationRunner = validationRunner;
     this.m_ReplayConfigs    = replayConfigs;
     this.m_CopyStatuses     = copyStatuses;
     this.m_Dag = dag;
     this.m_IgnoreTransientErrorsThreshold = ignoreTransientErrorsThreshold;
     this.Initialize();
     this.BuildJaggedArray();
 }
 public DatabaseAvailabilityCheck(string serverName, IEventManager eventManager, string momEventSource, DatabaseHealthValidationRunner validationRunner, uint ignoreTransientErrorsThreshold) : base("DatabaseAvailability", CheckId.DatabasesAvailability, Strings.DatabaseAvailabilityCheckDesc, CheckCategory.SystemHighPriority, eventManager, momEventSource, serverName, new uint?(ignoreTransientErrorsThreshold))
 {
     this.m_validationRunner = validationRunner;
 }