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; }