private DatabaseReadResource(Guid mdbGuid, WorkloadType workloadType) : base(mdbGuid, workloadType) { MDBPerfCounterHelper mdbhelper = MDBPerfCounterHelperCollection.GetMDBHelper(mdbGuid, true); WorkloadType wlmWorkloadType = base.WlmWorkloadType; if (wlmWorkloadType != WorkloadType.MailboxReplicationService) { if (wlmWorkloadType != WorkloadType.MailboxReplicationServiceHighPriority) { switch (wlmWorkloadType) { case WorkloadType.MailboxReplicationServiceInternalMaintenance: base.UtilizationPerfCounter = mdbhelper.PerfCounter.UtilizationReadInternalMaintenance; break; case WorkloadType.MailboxReplicationServiceInteractive: base.UtilizationPerfCounter = mdbhelper.PerfCounter.UtilizationReadCustomerExpectation; break; } } else { base.UtilizationPerfCounter = mdbhelper.PerfCounter.UtilizationReadHiPri; } } else { base.UtilizationPerfCounter = mdbhelper.PerfCounter.UtilizationRead; } base.TransferRatePerfCounter = mdbhelper.ReadTransferRate; }
private static bool ShouldRemovePerfCounter(Guid mdbGuid, MDBPerfCounterHelper perfCounter) { bool result = false; CommonUtils.CatchKnownExceptions(delegate { DatabaseInformation databaseInformation = MapiUtils.FindServerForMdb(mdbGuid, null, null, FindServerFlags.AllowMissing); result = (databaseInformation.IsMissing || !databaseInformation.IsOnThisServer); }, null); return(result); }
public static MDBPerfCounterHelper GetMDBHelper(Guid mdbGuid, bool createIfNotPresent) { MDBPerfCounterHelper mdbperfCounterHelper = null; MDBPerfCounterHelper result; lock (MDBPerfCounterHelperCollection.locker) { if (!MDBPerfCounterHelperCollection.data.TryGetValue(mdbGuid, out mdbperfCounterHelper) && createIfNotPresent) { DatabaseInformation databaseInformation = MapiUtils.FindServerForMdb(mdbGuid, null, null, FindServerFlags.AllowMissing); mdbperfCounterHelper = new MDBPerfCounterHelper(databaseInformation.DatabaseName ?? MrsStrings.MissingDatabaseName2(mdbGuid, databaseInformation.ForestFqdn)); MDBPerfCounterHelperCollection.data.TryInsertSliding(mdbGuid, mdbperfCounterHelper, MDBPerfCounterHelperCollection.RefreshInterval); } result = mdbperfCounterHelper; } return(result); }
private static void RemovePerfCounter(Guid mdbGuid, MDBPerfCounterHelper perfCounter, RemoveReason reason) { perfCounter.RemovePerfCounter(); }
internal void AttachPerfCounters(MDBPerfCounterHelper pcHelper) { this.pcHelper = pcHelper; this.UpdateActiveCounts(this.CurrentState, 1L); }