internal void PopulateDiagnosticInfo(RequestStatisticsDiagnosticArgument arguments, string jobPickupFailureMessage) { RequestJobDiagnosticInfoXML requestJobDiagnosticInfoXML = new RequestJobDiagnosticInfoXML { PoisonCount = base.PoisonCount, LastPickupTime = (base.LastPickupTime ?? DateTime.MinValue), IsCanceled = base.CancelRequest, RetryCount = base.RetryCount, TotalRetryCount = base.TotalRetryCount, DomainController = base.DomainControllerToUpdate, SkippedItems = base.SkippedItemCounts, FailureHistory = base.FailureHistory }; if (base.TimeTracker != null) { requestJobDiagnosticInfoXML.DoNotPickUntil = (base.TimeTracker.GetTimestamp(RequestJobTimestamp.DoNotPickUntil) ?? DateTime.MinValue); requestJobDiagnosticInfoXML.LastProgressTime = (base.TimeTracker.GetTimestamp(RequestJobTimestamp.LastProgressCheckpoint) ?? DateTime.MinValue); requestJobDiagnosticInfoXML.TimeTracker = base.TimeTracker.GetDiagnosticInfo(arguments); } if (base.ProgressTracker != null) { requestJobDiagnosticInfoXML.ProgressTracker = base.ProgressTracker.GetDiagnosticInfo(arguments); } if (!string.IsNullOrEmpty(jobPickupFailureMessage)) { requestJobDiagnosticInfoXML.JobPickupFailureMessage = jobPickupFailureMessage; } base.DiagnosticInfo = requestJobDiagnosticInfoXML.Serialize(true); }
internal RequestJobTimeTrackerXML GetDiagnosticInfo(RequestStatisticsDiagnosticArgument arguments) { bool showTimeSlots = arguments.HasArgument("showtimeslots"); this.RefreshDurations(); RequestJobTimeTrackerXML requestJobTimeTrackerXML = new RequestJobTimeTrackerXML(); requestJobTimeTrackerXML.CurrentState = this.CurrentState.ToString(); requestJobTimeTrackerXML.LastStateChangeTimeStamp = this.stateChangeTimestamp.ToString("O"); for (RequestJobTimestamp requestJobTimestamp = RequestJobTimestamp.None; requestJobTimestamp < RequestJobTimestamp.MaxTimestamp; requestJobTimestamp++) { DateTime?timestamp = this.GetTimestamp(requestJobTimestamp); if (timestamp != null) { requestJobTimeTrackerXML.AddTimestamp(requestJobTimestamp, timestamp.Value); } } foreach (RequestJobStateNode treeRoot in RequestJobStateNode.RootStates) { RequestJobTimeTrackerXML.DurationRec durationRec = this.DumpDurationTreeForDiagnostics(treeRoot, showTimeSlots); if (durationRec != null && durationRec.Duration != TimeSpan.Zero.ToString()) { if (requestJobTimeTrackerXML.Durations == null) { requestJobTimeTrackerXML.Durations = new List <RequestJobTimeTrackerXML.DurationRec>(); } requestJobTimeTrackerXML.Durations.Add(durationRec); } } return(requestJobTimeTrackerXML); }
internal TransferProgressTrackerXML GetDiagnosticInfo(RequestStatisticsDiagnosticArgument arguments) { bool showTimeSlots = arguments.HasArgument("showtimeslots"); return(new TransferProgressTrackerXML(this, showTimeSlots)); }