private void ReleaseReservation(ReservationBase reservation, IResourceAdmissionControl admissionControl) { try { admissionControl.Release(this.Owner.WorkloadClassification); } catch (NonOperationalAdmissionControlException ex) { MrsTracer.Common.Warning("Releasing a reservation from a non-operational AdmissionControl instance. Ignoring exception {0}", new object[] { CommonUtils.FullExceptionMessage(ex, true) }); } }
public void AddReservation(ReservationBase reservation) { if (!this.IsDisabled && !this.DynamicThrottlingDisabled) { IResourceAdmissionControl admissionControl = this.admissionControl; double num; if (!admissionControl.TryAcquire(this.Owner.WorkloadClassification, out num)) { ResourceLoad currentLoad = this.GetCurrentLoad(); throw new WlmResourceUnhealthyException(this.Owner.ResourceName, this.Owner.ResourceType, this.WlmResourceKey.ToString(), (int)this.WlmResourceKey.MetricType, currentLoad.LoadRatio, currentLoad.State.ToString(), (currentLoad.Metric != null) ? currentLoad.Metric.ToString() : "(null)"); } reservation.AddReleaseAction(delegate(ReservationBase r) { this.ReleaseReservation(r, admissionControl); }); } }