private FaultPropagationRecord(FaultPropagationRecord record) : base(record) { this.FaultSource = record.FaultSource; this.FaultHandler = record.FaultHandler; this.Fault = record.Fault; this.IsFaultSource = record.IsFaultSource; }
private FaultPropagationQuery Match(FaultPropagationRecord faultRecord) { FaultPropagationQuery query = null; if (this.faultPropagationSubscriptions != null) { for (int i = 0; i < this.faultPropagationSubscriptions.Count; i++) { string str = (faultRecord.FaultHandler == null) ? null : faultRecord.FaultHandler.Name; if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, faultRecord.FaultSource.Name) == 0) { if (!CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, str)) { continue; } query = this.faultPropagationSubscriptions[i]; break; } if ((string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, "*") == 0) && CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, str)) { query = this.faultPropagationSubscriptions[i]; break; } } } if (((query == null) || (this.associatedProfile.ImplementationVisibility != ImplementationVisibility.RootScope)) || (this.ShouldTrackActivity(faultRecord.FaultHandler, query.FaultHandlerActivityName) && this.ShouldTrackActivity(faultRecord.FaultSource, query.FaultSourceActivityName))) { return(query); } return(null); }
private FaultPropagationRecord(FaultPropagationRecord record) : base(record) { this.FaultSource = record.FaultSource; this.FaultHandler = record.FaultHandler; this.Fault = record.Fault; this.IsFaultSource = record.IsFaultSource; }
private void TrackFaultPropagationRecord(FaultPropagationRecord faultRecord) { if (EtwTrackingParticipantTrackRecords.FaultPropagationRecordIsEnabled(this.diagnosticTrace) && !EtwTrackingParticipantTrackRecords.FaultPropagationRecord(this.diagnosticTrace, faultRecord.InstanceId, faultRecord.RecordNumber, faultRecord.EventTime.ToFileTime(), faultRecord.FaultSource.Name, faultRecord.FaultSource.Id, faultRecord.FaultSource.InstanceId, faultRecord.FaultSource.TypeName, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Name : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Id : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.InstanceId : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.TypeName : string.Empty, faultRecord.Fault.ToString(), faultRecord.IsFaultSource, faultRecord.HasAnnotations ? PrepareAnnotations(faultRecord.Annotations) : "<items />", (this.TrackingProfile == null) ? string.Empty : this.TrackingProfile.Name, this.ApplicationReference)) { if (EtwTrackingParticipantTrackRecords.FaultPropagationRecord(this.diagnosticTrace, faultRecord.InstanceId, faultRecord.RecordNumber, faultRecord.EventTime.ToFileTime(), faultRecord.FaultSource.Name, faultRecord.FaultSource.Id, faultRecord.FaultSource.InstanceId, faultRecord.FaultSource.TypeName, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Name : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Id : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.InstanceId : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.TypeName : string.Empty, faultRecord.Fault.ToString(), faultRecord.IsFaultSource, "<items>...</items>", (this.TrackingProfile == null) ? string.Empty : this.TrackingProfile.Name, this.ApplicationReference)) { this.TraceTrackingRecordTruncated(faultRecord.RecordNumber); } else { this.TraceTrackingRecordDropped(faultRecord.RecordNumber); } } }
private FaultPropagationQuery Match(FaultPropagationRecord faultRecord) { FaultPropagationQuery query = null; if (this.faultPropagationSubscriptions != null) { for (var i = 0; i < this.faultPropagationSubscriptions.Count; i++) { //check specific and then generic var faultHandlerName = faultRecord.FaultHandler == null ? null : faultRecord.FaultHandler.Name; if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, faultRecord.FaultSource.Name) == 0) { if (CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, faultHandlerName)) { query = this.faultPropagationSubscriptions[i]; break; } } else if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, "*") == 0) { if (CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, faultHandlerName)) { query = this.faultPropagationSubscriptions[i]; break; } } } } if ((query != null) && (this.associatedProfile.ImplementationVisibility == ImplementationVisibility.RootScope)) { if ((!ShouldTrackActivity(faultRecord.FaultHandler, query.FaultHandlerActivityName)) || (!ShouldTrackActivity(faultRecord.FaultSource, query.FaultSourceActivityName))) { return(null); } } return(query); }
private void TrackFaultPropagationRecord(FaultPropagationRecord faultRecord) { if (EtwTrackingParticipantTrackRecords.FaultPropagationRecordIsEnabled(this.diagnosticTrace) && !EtwTrackingParticipantTrackRecords.FaultPropagationRecord(this.diagnosticTrace, faultRecord.InstanceId, faultRecord.RecordNumber, faultRecord.EventTime.ToFileTime(), faultRecord.FaultSource.Name, faultRecord.FaultSource.Id, faultRecord.FaultSource.InstanceId, faultRecord.FaultSource.TypeName, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Name : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Id : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.InstanceId : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.TypeName : string.Empty, faultRecord.Fault.ToString(), faultRecord.IsFaultSource, faultRecord.HasAnnotations ? PrepareAnnotations(faultRecord.Annotations) : "<items />", (this.TrackingProfile == null) ? string.Empty : this.TrackingProfile.Name, this.ApplicationReference)) { if (EtwTrackingParticipantTrackRecords.FaultPropagationRecord(this.diagnosticTrace, faultRecord.InstanceId, faultRecord.RecordNumber, faultRecord.EventTime.ToFileTime(), faultRecord.FaultSource.Name, faultRecord.FaultSource.Id, faultRecord.FaultSource.InstanceId, faultRecord.FaultSource.TypeName, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Name : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.Id : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.InstanceId : string.Empty, (faultRecord.FaultHandler != null) ? faultRecord.FaultHandler.TypeName : string.Empty, faultRecord.Fault.ToString(), faultRecord.IsFaultSource, "<items>...</items>", (this.TrackingProfile == null) ? string.Empty : this.TrackingProfile.Name, this.ApplicationReference)) { this.TraceTrackingRecordTruncated(faultRecord.RecordNumber); } else { this.TraceTrackingRecordDropped(faultRecord.RecordNumber); } } }
protected override void OnFaultPropogation(FaultPropagationRecord record, TimeSpan timeout) { Log.InfoWrite("Tracking::FaultPropogation - Source:{0} Instance Id:{1}, EventTime:{2}, Record#:{3}, Level:{4}, Exception:{5}", record.FaultSource.Name, record.InstanceId, record.EventTime, record.RecordNumber, record.Level, record.Fault.ToString()); }
private FaultPropagationQuery Match(FaultPropagationRecord faultRecord) { FaultPropagationQuery query = null; if (this.faultPropagationSubscriptions != null) { for (int i = 0; i < this.faultPropagationSubscriptions.Count; i++) { string str = (faultRecord.FaultHandler == null) ? null : faultRecord.FaultHandler.Name; if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, faultRecord.FaultSource.Name) == 0) { if (!CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, str)) { continue; } query = this.faultPropagationSubscriptions[i]; break; } if ((string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, "*") == 0) && CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, str)) { query = this.faultPropagationSubscriptions[i]; break; } } } if (((query == null) || (this.associatedProfile.ImplementationVisibility != ImplementationVisibility.RootScope)) || (this.ShouldTrackActivity(faultRecord.FaultHandler, query.FaultHandlerActivityName) && this.ShouldTrackActivity(faultRecord.FaultSource, query.FaultSourceActivityName))) { return query; } return null; }
FaultPropagationQuery Match(FaultPropagationRecord faultRecord) { FaultPropagationQuery query = null; if (this.faultPropagationSubscriptions != null) { for (int i = 0; i < this.faultPropagationSubscriptions.Count; i++) { //check specific and then generic string faultHandlerName = faultRecord.FaultHandler == null ? null : faultRecord.FaultHandler.Name; if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, faultRecord.FaultSource.Name) == 0) { if (CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, faultHandlerName)) { query = this.faultPropagationSubscriptions[i]; break; } } else if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, "*") == 0) { if (CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, faultHandlerName)) { query = this.faultPropagationSubscriptions[i]; break; } } } } if ((query != null) && (this.associatedProfile.ImplementationVisibility == ImplementationVisibility.RootScope)) { if ((!ShouldTrackActivity(faultRecord.FaultHandler, query.FaultHandlerActivityName)) || (!ShouldTrackActivity(faultRecord.FaultSource, query.FaultSourceActivityName))) { return null; } } return query; }
protected virtual void OnFaultPropogation(FaultPropagationRecord record, TimeSpan timeout) { }
/// <summary> /// When implemented in a derived class, used to synchronously process the tracking record. /// </summary> /// <param name="record"> /// The generated tracking record. /// </param> /// <param name="timeout"> /// The time period after which the provider aborts the attempt. /// </param> protected virtual void Track(FaultPropagationRecord record, TimeSpan timeout) { // Do nothing }