internal TimeBasedStoreDatabaseDriver(ThrottleGovernor parentGovernor, DatabaseInfo databaseInfo, ITimeBasedAssistantType timeBasedAssistantType, PoisonMailboxControl poisonControl, PerformanceCountersPerDatabaseInstance databaseCounters) : base(parentGovernor, databaseInfo, timeBasedAssistantType, poisonControl, databaseCounters)
 {
 }
Beispiel #2
0
 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)
 {
 }
Beispiel #5
0
 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);
 }
Beispiel #7
0
        // 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();
        }