示例#1
0
        private MicroDelayScope(MailboxReplicationProxyService mrsProxy, params ResourceKey[] resources)
        {
            this.startedCallProcessingAt = ExDateTime.UtcNow;
            this.resources         = resources;
            this.budget            = StandardBudget.AcquireUnthrottledBudget("MrsProxyBudget", BudgetType.ResourceTracking);
            this.workLoadSettings  = (mrsProxy.IsHighPriority ? CommonUtils.WorkloadSettingsHighPriority : CommonUtils.WorkloadSettings);
            this.skipWLMThrottling = (!ResourceHealthMonitorManager.Active || !TestIntegration.Instance.MicroDelayEnabled || mrsProxy.SkipWLMThrottling || mrsProxy.IsInFinalization);
            bool flag = false;

            try
            {
                if (!this.skipWLMThrottling)
                {
                    ResourceLoadDelayInfo.CheckResourceHealth(this.budget, this.workLoadSettings, this.resources);
                }
                this.budget.StartConnection("MailboxReplicationService.MicroDelayScope.MicroDelayScope");
                this.budget.StartLocal("MailboxReplicationService.MicroDelayScope.MicroDelayScope", default(TimeSpan));
                if (!ActivityContext.IsStarted)
                {
                    this.scope        = ActivityContext.Start(null);
                    this.scope.Action = "MailboxReplicationProxyService";
                    if (OperationContext.Current != null)
                    {
                        this.scope.UpdateFromMessage(OperationContext.Current);
                    }
                    this.scope.UserId = mrsProxy.ExchangeGuid.ToString();
                    if (mrsProxy.ClientVersion != null)
                    {
                        this.scope.ClientInfo = mrsProxy.ClientVersion.ComputerName;
                    }
                }
                flag = true;
            }
            finally
            {
                if (!flag)
                {
                    this.SuppressDisposeTracker();
                    if (this.budget != null)
                    {
                        this.budget.Dispose();
                        this.budget = null;
                    }
                    if (this.scope != null)
                    {
                        this.scope.End();
                        this.scope = null;
                    }
                }
            }
        }
 public void CheckResourceHealth()
 {
     ResourceLoadDelayInfo.CheckResourceHealth(this.ibudget, TeamMailboxSyncResourceMonitorFactory.TeamMailboxSyncResourceMonitor.workloadSettings, this.resourcesToAccess);
 }
 // Token: 0x060016A6 RID: 5798 RVA: 0x000559A7 File Offset: 0x00053BA7
 public void CheckResourceHealth(IThrottlingModuleInfo tmInfo)
 {
     ResourceLoadDelayInfo.CheckResourceHealth(tmInfo.PSBudget, tmInfo.GetWorkloadSettings(), tmInfo.ResourceKeys);
 }