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);
         }
     }
 }
Ejemplo n.º 5
0
        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
 }