internal TimeBasedStoreDatabaseDriver(ThrottleGovernor parentGovernor, DatabaseInfo databaseInfo, ITimeBasedAssistantType timeBasedAssistantType, PoisonMailboxControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters) : base(parentGovernor, databaseInfo, timeBasedAssistantType, poisonControl, databaseCounters) { }
public void StartDatabase(DatabaseInfo databaseInfo, PoisonMailboxControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters) { ExTraceGlobals.TimeBasedDriverManagerTracer.TraceDebug <TimeBasedDriverManager, DatabaseInfo>((long)this.GetHashCode(), "{0}: Starting assistants for database {1}", this, databaseInfo); foreach (TimeBasedAssistantControllerWrapper timeBasedAssistantControllerWrapper in this.TimeBasedAssistantControllerArray) { timeBasedAssistantControllerWrapper.Controller.StartDatabase(databaseInfo, poisonControl, databaseCounters); } base.TracePfd("PFD AIS {0} {1}: Started assistants for database {2}", new object[] { 31319, this, databaseInfo }); }
// Token: 0x06000459 RID: 1113 RVA: 0x000164C0 File Offset: 0x000146C0 public TimeBasedDatabaseDemandJob(TimeBasedDatabaseDriver driver, MailboxData mailboxData, PoisonMailboxControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters) : base(driver, new List <MailboxData>(new MailboxData[] { mailboxData }), poisonControl, databaseCounters) { }
public EventControllerPrivate(DatabaseInfo databaseInfo, EventBasedAssistantCollection assistants, PoisonEventControl poisonControl, PerformanceCountersPerDatabaseInstance performanceCounters, ThrottleGovernor serverGovernor) : base(databaseInfo, assistants, poisonControl, performanceCounters, serverGovernor, MapiEventTypeFlags.MailboxDeleted | MapiEventTypeFlags.MailboxMoveSucceeded) { }
public TimeBasedDatabaseWindowJob(TimeBasedDatabaseDriver driver, List <MailboxData> queue, int notInterestingCount, int filteredCount, int failedFilteringCount, int totalOnDatabaseCount, PoisonMailboxControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters) : base(driver, queue, poisonControl, databaseCounters) { this.notInterestingMailboxCount = notInterestingCount; this.filteredMailboxCount = filteredCount; this.failedFilteringMailboxCount = failedFilteringCount; this.totalOnDatabaseCount = totalOnDatabaseCount; }
// Token: 0x0600021E RID: 542 RVA: 0x0000C084 File Offset: 0x0000A284 public EventControllerPublic(DatabaseInfo databaseInfo, EventBasedAssistantCollection assistants, PoisonEventControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters, ThrottleGovernor serverGovernor) : base(databaseInfo, assistants, poisonControl, databaseCounters, serverGovernor, (MapiEventTypeFlags)0) { this.dispatcher = new EventDispatcherPublic(assistants.GetAssistantForPublicFolder(), this, base.Governor); }
// Token: 0x060001E0 RID: 480 RVA: 0x00009D48 File Offset: 0x00007F48 public EventController(DatabaseInfo databaseInfo, EventBasedAssistantCollection assistants, PoisonEventControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters, ThrottleGovernor serverGovernor, MapiEventTypeFlags moreEvents) { this.databaseInfo = databaseInfo; this.databaseCounters = databaseCounters; this.assistants = assistants; this.shutdownState = 0; this.poisonControl = poisonControl; MapiEventTypeFlags mapiEventTypeFlags = this.assistants.EventMask | moreEvents; this.filter = (((MapiEventTypeFlags)(-1) == mapiEventTypeFlags) ? null : Restriction.BitMaskNonZero(PropTag.EventMask, (int)mapiEventTypeFlags)); this.governor = new DatabaseGovernor("event processing on '" + databaseInfo.DisplayName + "'", serverGovernor, new Throttle("EventDatabase", serverGovernor.Throttle.OpenThrottleValue, serverGovernor.Throttle)); this.eventAccess = EventAccess.Create(this.DatabaseInfo, this.assistants); }
// Token: 0x060003C8 RID: 968 RVA: 0x00011DC8 File Offset: 0x0000FFC8 internal TimeBasedDatabaseDriver(ThrottleGovernor parentGovernor, DatabaseInfo databaseInfo, ITimeBasedAssistantType timeBasedAssistantType, PoisonMailboxControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters) { this.databaseInfo = databaseInfo; this.performanceCounters = databaseCounters; this.governor = new DatabaseGovernor("time based for '" + databaseInfo.DisplayName + "'", parentGovernor, new Throttle("TimeBasedDatabaseDriver", parentGovernor.Throttle.OpenThrottleValue, parentGovernor.Throttle)); this.assistant = timeBasedAssistantType.CreateInstance(databaseInfo); if (this.assistant == null) { throw new ApplicationException(string.Format("Assistant failed to create instance, assistant type {0}", timeBasedAssistantType.NonLocalizedName)); } this.poisonControl = poisonControl; this.assistantType = timeBasedAssistantType; this.assistantWorkloadState = TimeBasedDatabaseDriver.AssistantWorkloadStateOnDatabase.Enabled; this.windowJobHistory = new DiagnosticsHistoryQueue <DiagnosticsSummaryJobWindow>(100); }
protected TimeBasedDatabaseJob(TimeBasedDatabaseDriver driver, List <MailboxData> queue, PoisonMailboxControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters) { this.Finished = false; if (driver == null) { throw new ArgumentNullException("driver", "Time based Database Job can not be started with a null driver"); } this.Driver = driver; this.SetPendingQueue(queue); this.poisonControl = poisonControl; this.performanceCounters = databaseCounters; this.initialPendingQueueCount = this.pendingQueue.Count; this.OnDemandMailboxCount = 0; this.mailboxesProcessedFailureCount = 0; this.mailboxesProcessedSuccessfullyCount = 0; this.mailboxesFailedToOpenStoreSessionCount = 0; this.mailboxesRetriedCount = 0; }
internal PerformanceCountersPerDatabaseInstance(string instanceName, PerformanceCountersPerDatabaseInstance autoUpdateTotalInstance) : base(instanceName, "MSExchange Assistants - Per Database") { bool flag = false; List <ExPerformanceCounter> list = new List <ExPerformanceCounter>(); try { this.EventsInQueueCurrent = new ExPerformanceCounter(base.CategoryName, "Events in queue", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.EventsInQueueCurrent, new ExPerformanceCounter[0]); list.Add(this.EventsInQueueCurrent); this.AverageEventProcessingTime = new ExPerformanceCounter(base.CategoryName, "Average Event Processing Time In seconds", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.AverageEventProcessingTime, new ExPerformanceCounter[0]); list.Add(this.AverageEventProcessingTime); this.AverageEventProcessingTimeBase = new ExPerformanceCounter(base.CategoryName, "Average Event Processing Time Base", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.AverageEventProcessingTimeBase, new ExPerformanceCounter[0]); list.Add(this.AverageEventProcessingTimeBase); ExPerformanceCounter exPerformanceCounter = new ExPerformanceCounter(base.CategoryName, "Events Polled/sec", instanceName, true, null, new ExPerformanceCounter[0]); list.Add(exPerformanceCounter); this.EventsPolled = new ExPerformanceCounter(base.CategoryName, "Events Polled", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.EventsPolled, new ExPerformanceCounter[] { exPerformanceCounter }); list.Add(this.EventsPolled); this.PollingDelay = new ExPerformanceCounter(base.CategoryName, "Polling Delay", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.PollingDelay, new ExPerformanceCounter[0]); list.Add(this.PollingDelay); this.HighestEventPolled = new ExPerformanceCounter(base.CategoryName, "Highest Event Counter Polled", instanceName, true, null, new ExPerformanceCounter[0]); list.Add(this.HighestEventPolled); this.ElapsedTimeSinceLastEventPolled = new ExPerformanceCounter(base.CategoryName, "Elapsed Time Since Last Event Polled", instanceName, true, null, new ExPerformanceCounter[0]); list.Add(this.ElapsedTimeSinceLastEventPolled); this.ElapsedTimeSinceLastEventPollingAttempt = new ExPerformanceCounter(base.CategoryName, "Elapsed Time Since Last Event Polling Attempt", instanceName, true, null, new ExPerformanceCounter[0]); list.Add(this.ElapsedTimeSinceLastEventPollingAttempt); this.ElapsedTimeSinceLastDatabaseStatusUpdateAttempt = new ExPerformanceCounter(base.CategoryName, "Elapsed Time Since Last Database Status Update Attempt", instanceName, true, null, new ExPerformanceCounter[0]); list.Add(this.ElapsedTimeSinceLastDatabaseStatusUpdateAttempt); this.InterestingEventsBase = new ExPerformanceCounter(base.CategoryName, "Base Counter for Percentage of Interesting Events", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.InterestingEventsBase, new ExPerformanceCounter[0]); list.Add(this.InterestingEventsBase); this.EventsInterestingToMultipleAsssitants = new ExPerformanceCounter(base.CategoryName, "Events Interesting to Multiple Asssitants", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.EventsInterestingToMultipleAsssitants, new ExPerformanceCounter[0]); list.Add(this.EventsInterestingToMultipleAsssitants); ExPerformanceCounter exPerformanceCounter2 = new ExPerformanceCounter(base.CategoryName, "Base Counter for Events Interesting to Multiple Asssitants", instanceName, true, null, new ExPerformanceCounter[0]); list.Add(exPerformanceCounter2); this.InterestingEvents = new ExPerformanceCounter(base.CategoryName, "Percentage of Interesting Events", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.InterestingEvents, new ExPerformanceCounter[] { exPerformanceCounter2 }); list.Add(this.InterestingEvents); this.MailboxDispatchers = new ExPerformanceCounter(base.CategoryName, "Mailbox Dispatchers", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.MailboxDispatchers, new ExPerformanceCounter[0]); list.Add(this.MailboxDispatchers); this.MailboxSessionsInUseByDispatchers = new ExPerformanceCounter(base.CategoryName, "Mailbox Sessions In Use By Dispatchers", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.MailboxSessionsInUseByDispatchers, new ExPerformanceCounter[0]); list.Add(this.MailboxSessionsInUseByDispatchers); this.AverageMailboxProcessingTime = new ExPerformanceCounter(base.CategoryName, "Average Mailbox Processing Time In seconds", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.AverageMailboxProcessingTime, new ExPerformanceCounter[0]); list.Add(this.AverageMailboxProcessingTime); this.AverageMailboxProcessingTimeBase = new ExPerformanceCounter(base.CategoryName, "Average Mailbox Processing Time In seconds Base", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.AverageMailboxProcessingTimeBase, new ExPerformanceCounter[0]); list.Add(this.AverageMailboxProcessingTimeBase); ExPerformanceCounter exPerformanceCounter3 = new ExPerformanceCounter(base.CategoryName, "Mailboxes processed/sec", instanceName, true, null, new ExPerformanceCounter[0]); list.Add(exPerformanceCounter3); this.MailboxesProcessed = new ExPerformanceCounter(base.CategoryName, "Mailboxes Processed", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.MailboxesProcessed, new ExPerformanceCounter[] { exPerformanceCounter3 }); list.Add(this.MailboxesProcessed); this.NumberOfThreadsUsed = new ExPerformanceCounter(base.CategoryName, "Number of Threads Used", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.NumberOfThreadsUsed, new ExPerformanceCounter[0]); list.Add(this.NumberOfThreadsUsed); this.HealthMeasure = new ExPerformanceCounter(base.CategoryName, "Health Measure", instanceName, true, (autoUpdateTotalInstance == null) ? null : autoUpdateTotalInstance.HealthMeasure, new ExPerformanceCounter[0]); list.Add(this.HealthMeasure); long num = this.EventsInQueueCurrent.RawValue; num += 1L; flag = true; } finally { if (!flag) { foreach (ExPerformanceCounter exPerformanceCounter4 in list) { exPerformanceCounter4.Close(); } } } this.counters = list.ToArray(); }