EventArgs-Überwachungsbeispiel

Download sample

Dieses Beispiel veranschaulicht die Verwendung des SQL-Überwachungsdiensts, der von Windows Workflow Foundation zum Überwachen der Ausführung eines Workflows bereitgestellt wird.

Die Workflowlaufzeit löst beim Ausführen eines Workflows bestimmte Ereignisse aus. Der Überwachungsdienst kann diese Ereignisse abfangen und Informationen zu den Ereignissen in einer SQL Server-Datenbank, die abgefragt werden kann, speichern.

Die Überwachungslaufzeit definiert die Typen TrackingWorkflowTerminatedEventArgs, TrackingWorkflowSuspendedEventArgs und TrackingWorkflowExceptionEventArgs, um Informationen über das Abbrechen, Unterbrechen bzw. über Ereignisse eines Workflows zu speichern. WorkflowEventArgs werden mit WorkflowTrackingRecord für die entsprechenden Ereignisse gesendet. So werden TrackingWorkflowTerminatedEventArgs zum Beispiel mit WorkflowTrackingRecord gesendet, wenn der Workflowstatus einen WorkflowTerminated-Status erreicht.

Der SqlTrackingService empfängt diese verschiedenen EventArgs-Objekte bei deren Eintreffen, serialisiert sie und speichert Sie in der Überwachungsdatenbank zusammen mit ihren Ereignissen, wenn das Überwachungsprofil diese Ereignisse anfordert. Das serialisierte Format kann da deserialisiert und von Überwachungsbenutzern verwendet werden. Das verwendete Überwachungsprofil ist das standardmäßige SqlTrackingService-Überwachungsprofil.

Tipp

Der in WorkflowTrackingRecord angegebene Zeitwert liegt im Coordinated Universal Time (Greenwich Mean Time)-Format vor.

Beispielübersicht

Das Beispiel ist eine Workflowkonsolenanwendung und besteht aus zwei Workflows:

  • ExceptionWorkflow. Ein einfacher Workflow mit einem Codehandler, in dem eine Ausnahme ausgelöst wird. Die Ausnahme wird nicht behandelt und führt zum Beenden des Workflows.

  • SuspendedWorkflow. Ein einfacher Workflow mit einer Unterbrechungsaktivität. Der Workflow sollte einen Unterbrechungsstatus erreichen.

Der Haupteintrag für das Beispiel befindet sich in der Program-Klasse, die über die folgende Logik verfügt:

  1. Erstellt eine connectionString zur SqlTrackingService-Datenbank.

  2. Fügt SqlTrackingService wie folgt zur Workflowlaufzeit hinzu:

    workflowRuntime.AddService(new SqlTrackingService(connectionString));
    
  3. Führt die Workflows wie folgt aus:

    WorkflowInstance exceptionWorkflowInstance = workflowRuntime.CreateWorkflow(typeof(ExceptionWorkflow));
    exceptionWorkflowInstance.Start();
    
  4. Erstellt Ereignishandler, die auf die Beendigung oder den Abbruch des Workflows warten (je nach Typ des Workflows).

  5. Fragt den SqlTrackingService nach spezifischen WorkflowEvents ab und ruft das binär serialisierte Objekt von TrackingWorkflowTerminatedEventArgs, TrackingWorkflowSuspendedEventArgs und TrackingWorkflowExceptionEventArgs ab.

  6. Deserialisiert die Daten und gibt deren Inhalt in der Konsole aus.

Erstellen der SqlTrackingService-Datenbank

Die von Windows Workflow Foundation installierten SQL-Dienste verwenden Microsoft SQL Server, um Informationen zu speichern. Sie können für diese Aufgaben Microsoft SQL Server 2005 Express, SQL Server 2000 oder höhere Versionen oder SQL Server 2000 Desktop Engine (MSDE) verwenden.

Das Setup von Windows Workflow Foundation installiert nicht die Datenbanken, die von diesen Diensten benötigt werden. Das Setup installiert jedoch die SQL-Skripte zum Erstellen und Konfigurieren der Datenbanken für diese Dienste.

So erstellen Sie die SQL-Überwachungsdatenbank

  1. Erstellen Sie mit Microsoft SQL Server 2005 Express, SQL Server 2000 oder höheren Versionen oder mit SQL Server 2000 Desktop Engine (MSDE) eine neue Datenbank mit dem Namen Tracking, indem Sie die folgende SQL-Abfrageanweisung verwenden:

    CREATE DATABASE Tracking

    Hinweis   Wenn Sie sowohl SqlTrackingService als auch SqlWorkflowPersistenceService in einer Workflowanwendung verwenden, wird empfohlen, dass Sie eine einzige Datenbank für Persistenz und Überwachung verwenden.

  2. Wählen Sie im SQL Query Analyzer-Arbeitsbereich die in Schritt 1 erstellte Datenbank aus der Liste der verfügbaren Datenbanken aus.

  3. Klicken Sie im Menü Datei auf Öffnen, und öffnen Sie das SQL-Skript %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<Sprache>\Tracking_Schema.sql.

  4. Führen Sie die Abfrage aus, indem Sie auf Ausführen klicken oder F5 drücken, um die SQL Tracking Service-Tabellen zu erstellen.

  5. Klicken Sie im Menü Datei auf Öffnen, und öffnen Sie das SQL-Skript %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<Sprache>\Tracking_Logic.sql.

  6. Führen Sie die Abfrage aus, indem Sie auf Ausführen klicken oder F5 drücken, um die gespeicherten Prozeduren von SQL Tracking Service zu erstellen.

So erstellen Sie das Beispiel

  1. Laden Sie das Beispiel herunter, indem Sie auf Beispiel downloaden klicken.

    Hierdurch wird das Beispielprojekt auf die lokale Festplatte extrahiert.

  2. Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.

  3. Wechseln Sie zum Quellverzeichnis des Beispiels.

  4. Geben Sie an der Eingabeaufforderung MSBUILD <Name der Projektmappendatei> ein.

So führen Sie das Beispiel aus

  • Führen Sie im Eingabeaufforderungsfenster des SDKs die EXE-Datei im Ordner EventArgsTrackingSample\bin\debug aus (bzw. im Ordner EventArgsTrackingSample\bin für die VB-Version des Beispiels), der sich unter dem Hauptordner des Beispiels befindet.

Siehe auch

Referenz

SqlTrackingService
SqlTrackingQuery
SqlTrackingWorkflowInstance
ActivityEvents
ActivityTrackingRecord
WorkflowEvents
WorkflowTrackingRecord

Weitere Ressourcen

Überwachungsbeispiele
Einfaches Überwachungsbeispiel
Beispiel für die Abfrage mit SQLTrackingService
Beispiel für das Überwachen mit Benutzerüberwachungspunkten
ConsoleTrackingService-Beispiel
Beispiel für die Abfrage mit SQLTrackingService
RuleActionTrackingEvent-Beispiel
Beispiel für einen Dateiüberwachungsdienst und Abfrage
Beispiel für das Verwenden des Überwachungsprofil-Objektmodells
Beispiel für die SQL-Datenpflege
Windows Workflow Tracking Services

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.