Freigeben über


Workflow-Monitor-Beispiel

Download sample

Der Workflow-Monitor ist ein Tool zum Anzeigen von Workflow- und Aktivitätsstatusinformationen zu abgeschlossenen und zurzeit ausgeführten Workflows. Der Monitor liest Überwachungsinformationen aus der Überwachungsdatenbank und zeigt den aktuellen Workflow- sowie Aktivitätsstatus und die aktuelle Workflowausführung anhand des Workflow Designer-Steuerelements an.

Damit der Workflow-Monitor ordnungsgemäß funktioniert, müssen sich Workflowtypen, die über Überwachungsinformationen in der Datenbank verfügen, entweder im GAC-Verzeichnis oder in dem gleichen Verzeichnis wie die EXE-Datei des Workflow-Monitors befinden. Wenn Typen fehlen, wird beim Laden der Workflowdefinition eine Fehlermeldung angezeigt. Darüber hinaus müssen Sie eine neue Überwachungsdatenbank erstellen und die Workflows ausführen, damit der Workflow-Monitor die Workflowtypen ordnungsgemäß ermitteln kann.

In den folgenden Abschnitten finden Sie weitere Informationen darüber, wie Sie den SQL-Überwachungsdienst zur Workflowlaufzeit hinzufügen, damit Überwachungsereignisse in der SQL-Überwachungsdatenbank verfolgt werden.

Einrichten eines Hosts für die Überwachung

Damit der Monitor Workflows und Aktivitäten anzeigen kann, müssen ihm der Designer- und Serialisierungscode zur Verfügung stehen. Alle Workflow- und Aktivitätstypen müssen im globalen Assemblycache (GAC) mit gacutil.exe registriert werden, oder sie müssen sich im selben Verzeichnis wie WorkflowMonitor.exe befinden. Darüber hinaus muss SqlTrackingQuery über Zugriff auf die Typen verfügen, um Workflows, Aktivitätsinformationen und die Workflowdefinition in den SqlTrackingService-Tabellen lesen zu können.

Im folgenden Verfahren wird beschrieben, wie Sie die von der Workflow-Monitor-Anwendung verwendete Überwachungsdatenbank konfigurieren.

So erstellen Sie die SQL-Überwachungsdatenbank

  1. Erstellen Sie mit Microsoft SQL Server 2005 Express, SQL Server 2000 oder höheren Versionen oder 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 T:System.Workflow.Runtime.Tracking.SqlTrackingService als auch T:System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService in einer Workflowanwendung verwenden, empfiehlt sich die Verwendung einer einzigen Datenbank für Persistenz und Überwachung.

  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.

Konfigurieren der Hostanwendung

Um eine Hostanwendung für die Verwendung von SqlTrackingService zu konfigurieren, fügen Sie den SqlTrackingService-Dienst entweder programmatisch oder anhand einer Konfigurationsdatei zur Dienstsammlung von WorkflowRuntime hinzu. Legen Sie die ConnectionString-Eigenschaft für den Servernamen und die Datenbank fest. Legen Sie die IsTransactional-Eigenschaft des SqlTrackingService-Diensts auf false fest, damit dem Monitor aktuelle Daten zur Verfügung stehen (wenn die IsTransactional-Eigenschaft auf true festgelegt ist, werden die Informationen vor dem Schreiben in die Datenbank in einem Stapel verarbeitet.)

Verwenden Sie das folgende Codebeispiel, um den SqlTrackingService-Dienst programmatisch hinzuzufügen:

C#:

WorkflowRuntime workflowRuntime = new WorkflowRuntime();

SqlTrackingService sqlTrackingService = new SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;");

sqlTrackingService.IsTransactional = false;

workflowRuntime.AddService(sqlTrackingService);

workflowRuntime.StartRuntime();

Visual Basic:

Dim workflowRuntime As New WorkflowRuntime()

Dim sqlTrackingService As New SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;")

sqlTrackingService.IsTransactional = false

workflowRuntime.AddService(sqlTrackingService)

workflowRuntime.StartRuntime()

Um den SqlTrackingService-Dienst anhand einer Konfigurationsdatei hinzuzufügen, muss im Code der Hostanwendung der Name des Konfigurationsabschnitts im WorkflowRuntime-Konstruktor angegeben sein, und die Konfigurationsdatei (z. B. app.config) muss die WorkflowRuntime-Konfigurationsinformation beinhalten. Beispiel:

Hostanwendung

C#:
WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowRuntimeConfigurationSection");
workflowRuntime.StartRuntime();

Visual Basic:
Dim workflowRuntime As New WorkflowRuntime("WorkflowRuntimeConfigurationSection")
workflowRuntime.StartRuntime()

Konfigurationsdatei

<configuration>
    <configSections>
        <section name="WorkflowRuntimeConfigurationSection" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </configSections>
    <WorkflowRuntimeConfigurationSection Name="WorkflowRuntimeConfigurationSectionName" UnloadOnIdle="false">
        <Services>
            <add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  ConnectionString="Initial Catalog=TrackingStore;Data Source=localhost;Integrated Security=SSPI;" IsTransactional="false" UseDefaultProfile="true" />
        </Services>
    </WorkflowRuntimeConfigurationSection>
</configuration>

Benutzeroberfläche des Monitors

Die Benutzeroberfläche des Monitors umfasst drei primäre Bereiche:

  • Bereich Workflows

  • Bereich Aktivitäten

  • Bereich Workflowansicht

Der Monitor liest alle überwachten Workflows. Um den Computernamen und die Datenbank anzugeben, verwenden Sie das Dialogfeld Einstellungen. Klicken Sie zum Öffnen des Dialogfelds im Monitormenü auf Einstellungen, oder klicken Sie in der Symbolleiste auf die Schaltfläche Einstellungen.

Suchoptionen-Symbolleiste für Workflows

Diese Symbolleiste zeigt Suchoptionen für das Tool an. Sie können Suchläufe anhand einer Kombination von Workflowstatus und Zeitintervall, in dem der Status auftrat, sowie nach Werten von Überwachungsdatenelementen durchführen. Sie können auch nach Workflow-ID suchen. Sie können zum Beispiel nach gestern beendeten Workflows suchen, für die das Überwachungsdatenelement PurchaseAmount einen Wert von 500 in der CheckCredit-Aktivität aufwies.

Tipp

Das SqlTrackingService-Standardüberwachungsprofil extrahiert standardmäßig alle Workflow-, Aktivitäts- und Benutzer-Überwachungspunktereignisse. Es extrahiert keine Workflowüberwachungsdaten. Daher können Sie erst nach Überwachungsdatenelement suchen, nachdem Sie entweder das Standardüberwachungsprofil oder das Überwachungsprofil, das mit dem von Ihnen spezifisch ausgeführten Typ verknüpft ist, aktualisiert haben. Sie können das in diesem Beispiel bereitgestellte SQL-Skript, UpdateV1DefaultTrackingProfile.sql, verwenden, um das Überwachungsprofil so zu aktualisieren, dass die Name-Eigenschaft von Aktivitäten abgerufen wird.

Sie führen dies mit dem folgenden Element im Überwachungsprofil durch:

<Extracts>
    <WorkflowDataTrackingExtract>
        <Member>Name</Member>
    </WorkflowDataTrackingExtract>
</Extracts>

Bereich "Workflows"

In diesem Bereich werden alle Workflows in der Überwachungsdatenbank zusammen mit dem Status des jeweiligen Workflows angezeigt. Wenn ein Workflow ausgewählt wird, wird die Überwachungsdatenbank nach dem aktuellen Status aller abgeschlossenen und in Ausführung befindlichen Aktivitäten für diesen Workflow abgefragt, und diese Aktivitäten werden im Bereich Aktivität angezeigt.

Bereich "Aktivitäten"

In diesem Bereich werden alle Aktivitäten und der Aktivitätsstatus für den im Bereich Workflows ausgewählten Workflow angezeigt.

Bereich "Workflowansicht"

Dieser Bereich umfasst das Workflow-Designer-Steuerelement, das in Windows Workflow Foundation enthalten ist. Mit diesem Steuerelement können zusammengesetzte Aktivitäten ein- oder ausgeblendet sowie die Workflowansicht (in Hauptansicht, Ausnahmen, Ereignisse und Kompensierung) geändert werden. Ist ein Workflow im Bereich Workflow ausgewählt, wird im Bereich Workflow ein Häkchen neben allen abgeschlossenen Aktivitäten und ein Wiedergabesymbol für alle zurzeit ausgeführten Aktivitäten angezeigt.

Menüs

Folgende Menüoptionen stehen im Workflow-Monitor zur Verfügung:

Menü Datei

Beenden - Beendet das Programm.

Menü Ansicht

Workflowdetails - Wenn diese Option aktiviert ist, werden die Bereiche Workflow und Aktivität angezeigt.

Menü Monitor

Start/Beenden - Startet oder beendet die Überwachung.

Einstellungen - Zeigt das Dialogfeld Einstellungen an.

Schaltflächen der Symbolleiste

Folgende Symbolleistenschaltflächen stehen im Workflow-Monitor zur Verfügung:

  • Einstellungen - Zeigt das Dialogfeld Einstellungen an. (Weitere Informationen finden Sie im Abschnitt "Einstellungen".)

  • Monitor Ein - Beginnt mit der Überwachung der Überwachungsdatenbank (siehe "Verwenden des Monitors").

  • Monitor Aus - Beendet die Überwachung der Überwachungsdatenbank (siehe "Verwenden des Monitors").

  • Alle erweitern - Erweitert alle zusammengesetzten Aktivitäten in der Workflowansicht.

  • Alle reduzieren - Reduziert alle zusammengesetzten Aktivitäten in der Workflowansicht.

  • Workflow-Zoomfaktor - Legt den Zoomfaktor der Workflowansicht fest.

Einstellungen

Sie verwenden das Dialogfeld Einstellungen zum Konfigurieren des Monitors. Sie können Werte in den folgenden Feldern festlegen:

  • SQL Server - Der lokale oder der Remotecomputer, der SQL Server ausführt.

  • Überwachungsdatenbank - Die Datenbank, in der die Überwachungsinformationen gespeichert werden.

  • Abrufintervall - Die Zeit in Millisekunden, die vor dem erneuten Abrufen der Datenbank gewartet wird.

  • Letzten beim Abrufen automatisch auswählen - Wenn diese Option aktiviert ist, wird im Bereich Workflows der zuletzt ausgeführte Workflow automatisch ausgewählt.

Tipp

Der Servername und Datenbankname werden ebenfalls in der Statusleiste angezeigt.

Verwenden des Monitors

Der Workflow-Monitor ruft die Überwachungsdatenbank ab und zeigt automatisch den Status des Workflows und der Aktivitäten in den Bereichen Workflows und Aktivitäten an; außerdem wird der Fortschritt des Workflows im Fenster Workflowansicht angezeigt. Um die Überwachung zu aktivieren, verwenden Sie die Symbolleistenschaltfläche Monitor Ein oder klicken im Menü Monitor auf Start. Legen Sie im Dialogfeld Einstellungen das Abrufintervall fest. Während der Überwachung einer Überwachungsdatenbank ist es nützlich, den gerade ausgeführten Workflow anzuzeigen. Aktivieren Sie hierzu im Dialogfeld Einstellungen das Kontrollkästchen Letzten beim Abrufen automatisch auswählen.

Tipp

Wenn die Überwachung aktiviert ist, wird in der Statusleiste "Überwachung" angezeigt.

Der Workflow-Monitor verwendet die SqlTrackingQuery-APIs für die Abfragefunktionen. Die Liste der Workflows und Aktivitäten wird über die SqlTrackingQuery-APIs abgerufen. Die Suchfunktionen verwenden die SqlTrackingQuery-APIs.

Mehrere Definitionen des gleichen Workflowtyps

SqlTrackingService behält die Workflowdefinition bei, wenn ein neuer Workflowtyp erstmalig verwendet wird. Wenn sich die Definition jedoch ändert und die Typenversion gleich bleibt, wird ein neuer Datensatz nicht in der Überwachungsdatenbank beibehalten. Daher zeigt der Monitor immer die erste Definition eines Workflowtyps an.

Benutzereinstellungen

Der Workflow-Monitor speichert Einstellungen (SQL Server, Datenbank, Abrufintervall) in der Datei workflowmonitor.config im folgenden Verzeichnis: \Dokumente und Einstellungen\<Benutzer>\Lokale Einstellungen\Anwendungsdaten\Microsoft Corporation\Windows Workflow Foundation SDK Application Samples\3.0.0.0.

Siehe auch

Referenz

SqlTrackingService

Weitere Ressourcen

Using the SQLTrackingService
Task 4: Use the Windows Workflow Tracking Service
Einfaches Überwachungsbeispiel
Anwendungsbeispiele

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.