CorrelationManager Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Összeveti azokat a nyomkövetéseket, amelyek egy logikai tranzakció részei.
public ref class CorrelationManager
public class CorrelationManager
type CorrelationManager = class
Public Class CorrelationManager
- Öröklődés
-
CorrelationManager
Példák
Az alábbi példakód bemutatja az osztály használatát egy CorrelationManager nyomkövetési eseményhez társított logikai művelet azonosításával. Két logikai művelet indul el, az egyik a fő szálban, a másik pedig egy feldolgozószálban. A rendszer mindkét logikai műveletben naplóz egy hibaeseményt.
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Threading;
namespace CorrlationManager
{
class Program
{
//private static TraceSource ts;
static void Main(string[] args)
{
TraceSource ts = new TraceSource("MyApp");
int i = ts.Listeners.Add(new ConsoleTraceListener());
ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
ts.Switch = new SourceSwitch("MyAPP", "Verbose");
// Start the logical operation on the Main thread.
Trace.CorrelationManager.StartLogicalOperation("MainThread");
ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
Thread t = new Thread(new ThreadStart(ThreadProc));
// Start the worker thread.
t.Start();
// Give the worker thread a chance to execute.
Thread.Sleep(1000);
Trace.CorrelationManager.StopLogicalOperation();
}
public static void ThreadProc()
{
TraceSource ts = new TraceSource("MyApp");
int i = ts.Listeners.Add(new ConsoleTraceListener());
ts.Listeners[i].TraceOutputOptions = TraceOptions.LogicalOperationStack;
ts.Switch = new SourceSwitch("MyAPP", "Verbose");
// Add another logical operation.
Trace.CorrelationManager.StartLogicalOperation("WorkerThread");
ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.");
Trace.CorrelationManager.StopLogicalOperation();
}
}
}
// This sample generates the following output:
//MyApp Error: 1 : Trace an error event.
// LogicalOperationStack=MainThread
//MyApp Error: 1 : Trace an error event.
// LogicalOperationStack=WorkerThread, MainThread
Imports System.Collections.Generic
Imports System.Text
Imports System.Diagnostics
Imports System.Threading
Class Program
'private static TraceSource ts;
Shared Sub Main(ByVal args() As String)
Dim ts As New TraceSource("MyApp")
Dim i As Integer = ts.Listeners.Add(New ConsoleTraceListener())
ts.Listeners(i).TraceOutputOptions = TraceOptions.LogicalOperationStack
ts.Switch = New SourceSwitch("MyAPP", "Verbose")
' Start the logical operation on the Main thread.
Trace.CorrelationManager.StartLogicalOperation("MainThread")
ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.")
Dim t As New Thread(New ThreadStart(AddressOf ThreadProc))
' Start the worker thread.
t.Start()
' Give the worker thread a chance to execute.
Thread.Sleep(1000)
Trace.CorrelationManager.StopLogicalOperation()
End Sub
Public Shared Sub ThreadProc()
Dim ts As New TraceSource("MyApp")
Dim i As Integer = ts.Listeners.Add(New ConsoleTraceListener())
ts.Listeners(i).TraceOutputOptions = TraceOptions.LogicalOperationStack
ts.Switch = New SourceSwitch("MyAPP", "Verbose")
' Add another logical operation.
Trace.CorrelationManager.StartLogicalOperation("WorkerThread")
ts.TraceEvent(TraceEventType.Error, 1, "Trace an error event.")
Trace.CorrelationManager.StopLogicalOperation()
End Sub
End Class
' This sample generates the following output:
'MyApp Error: 1 : Trace an error event.
' LogicalOperationStack=MainThread
'MyApp Error: 1 : Trace an error event.
' LogicalOperationStack=WorkerThread, MainThread
Megjegyzések
Az egyetlen logikai műveletből létrehozott nyomkövetések művelet-egyedi identitással címkézhetők fel, hogy megkülönböztessék őket egy másik logikai művelet nyomkövetéseitől. Hasznos lehet például a korrelált nyomkövetések csoportosítása ASP.NET kérés alapján. Az CorrelationManager osztály metódusokat biztosít egy logikai művelet identitásának szálhoz kötött környezetben való tárolására, és a szál által generált nyomkövetési események automatikus címkézésére a tárolt identitással.
A logikai műveletek beágyazottak is lehetnek. A LogicalOperationStack tulajdonság a beágyazott logikai műveleti identitások halmát teszi elérhetővé. A metódus minden hívása StartLogicalOperation egy új logikai művelet identitását küldi a verembe. A metódus minden hívása StopLogicalOperation egy logikai műveleti identitást hoz létre a veremből.
Note
A logikai műveleti identitások objektumok, amelyek lehetővé teszik egy logikai művelet identitástípusának használatát.
Tulajdonságok
| Name | Description |
|---|---|
| ActivityId |
Lekéri vagy beállítja egy globális tevékenység identitását. |
| LogicalOperationStack |
Lekéri a logikai műveleti vermet a híváskörnyezetből. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| StartLogicalOperation() |
Logikai műveletet indít el egy szálon. |
| StartLogicalOperation(Object) |
Logikai műveletet indít el a megadott identitással egy szálon. |
| StopLogicalOperation() |
Leállítja az aktuális logikai műveletet. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |