Freigeben über


Windows Workflow-Überwachungsdienste

Windows Workflow Foundation ermöglicht Ihnen, workflowbezogene Informationen konsistent, zuverlässig und flexibel zu überwachen. Mit dem Windows Workflow Foundation-Überwachungsframework können Hosts Workflowinstanzen während der Ausführung überwachen, indem bei der Workflowausführung ausgelöste Ereignisse erfasst werden. Das Framework austauschbar, sodass Hosts entweder ihren eigenen Überwachungsdienst schreiben oder einen vordefinierten Drittanbieterüberwachungsdienst verwenden können. Da mit dem Workflow Foundation-Laufzeitmodul während seiner Lebensdauer zudem mehrere Laufzeitdienste hinzugefügt werden können, besteht die Möglichkeit, mehrere Überwachungsdienste verschiedenen Typs gleichzeitig zu aktivieren. Beispielsweise beinhaltet Windows Workflow Foundation einen vordefinierten SqlTrackingService-Dienst, der eine konfigurierbare Menge von Überwachungsinformationen in eine SQL Server-Datenbank schreibt. Die Windows Workflow Foundation-Beispiele beinhalten ein Beispiel (ConsoleTrackingService Sample), das Ereignisse überwacht und diese Ereignisse an die Konsole ausgibt. Beide Dienste können in Verbindung miteinander ausgeführt werden, um sowohl Sichtbarkeit für Endbenutzer in der Workflowausführung als auch das Debuggen von Informationen bei der Entwicklung zu ermöglichen.

Überwachungsfeatures in Windows Workflow Foundation

Windows Workflow Foundation beinhaltet mehrere integrierte Features, um Überwachung in einer workflowaktivierten Anwendung zu aktivieren.

Feature Beschreibung

Stellt sicher, dass die Überwachung konsistent verläuft.

Benutzer und Anwendungen können Workflowzustand und -verlauf für Live-Workflows und auf Datenträgern archivierten Workflows überwachen. Ein konsistentes Framework für Überwachungsdienste stellt sicher, dass benutzerdefinierte Überwachungsdienste einem logischen und kohärenten Muster entsprechen.

Bietet Skalierbarkeit und Zuverlässigkeit.

Das Überwachungsframework ist leicht genug, um in nur einem Computer eingesetzt zu werden, doch es kann gleichzeitig so skaliert werden, dass es den Anforderungen der meisten Unternehmen gerecht wird. Dazu zählen Unternehmen, in denen eine gruppierte und verteilte Datencenterumgebung erforderlich ist.

Ermöglicht das Überwachen von Workflowdaten unabhängig vom zugrunde liegenden Datenspeicher.

Das Überwachungsframework ist zu dem Datenspeicher agnostisch, der die Verfolgungsereignisse verwaltet. Ein genau definiertes Schema für Überwachungsereignisse steht Endbenutzern zur Verfügung; allerdings steuert der Datenspeicher letztlich das Schema für die zugrunde liegenden beibehaltenen Daten.

Stellt einen Ort für die Abfrage workflowbezogener Daten über Hostumgebungen bereit.

Windows Workflow Foundation kann in mehreren Umgebungen gehostet werden; Anwendungen benötigen eine konsistente Schnittstelle, über die Workflowinformationen abgefragt werden können.

Bietet die Möglichkeit zum Abfragen vergangener und aktueller Workflowlebensdauern und zum Bestimmen möglicher zukünftiger Ausführungspfade der Workflowinstanzen.

Mit dem Überwachungsframework können Workflowdefinitionen und Metadaten, die einem Workflow zugewiesen sind, ausgegeben werden, um anleitungsbezogene Abfragen zu ermöglichen. Es bietet auch eine Möglichkeit zum Ausgeben von Datenzustandsänderungen, damit benutzerdefinierte Zustände überwacht werden können.

Unterstützt programmgesteuerte Änderung an Überwachungsprofilen.

Sie können Überwachungsprofile mithilfe des Überwachungsprofil-Objektmodells erstellen. Dadurch besteht die Möglichkeit, benutzerdefinierte Profile während der Ausführung der aktiven Workflows dem Bedarf entsprechend zu laden.

Überwachungsprofile

Überwachungsdienste bestimmen die empfangene Datenmenge mithilfe eines Überwachungsprofils zum Filtern dieser Daten. Ein Überwachungsdienst kann Workflowereignisse, Aktivitätsausführungsstatus und benutzerdefinierte Benutzerüberwachungsdatenelemente empfangen. Der Überwachungsdienst ist für das Überwachen der Daten zuständig, die er bei Ausführung der Workflowinstanz vom Laufzeitmodul empfängt. Der Dienst kann die Daten in einer Datei oder einer Datenbank speichern, einen speicherinternen Abfragespeicher erstellen, die Daten in das Systemereignisprotokoll schreiben oder die Überwachungsdaten an die Konsole ausgeben.

Überwachungsprofile können deklarativ mithilfe eines Überwachungsprofil-XML-Schemas oder durch programmgesteuerte Verwendung des Überwachungsprofil-Objektmodells erstellt werden. Darüber hinaus können XML-basierte Überwachungsprofile mithilfe von TrackingProfileSerializer-APIs in eine TrackingProfile-Instanz deserialisiert werden.

Weitere Informationen zu Überwachungsprofilen finden Sie unter Erstellen und Verwenden von Überwachungsprofilen.

Überwachen von Ereignistypen

Bei Verwendung der Überwachung in Windows Workflow Foundation kann ein einzelnes Ereignis oder eine Reihe von Ereignissen, die bei Ausführung des Workflows ausgelöst werden, überwacht werden. Die Ereignisse, die für Aktivitäten überwacht werden können, werden in der ActivityExecutionStatus-Enumeration definiert:

  • Initialized

  • Executing

  • Canceling

  • Closed

  • Compensating

  • Faulting

Neben den Überwachungsereignissen für Aktivitäten ermöglicht die Überwachungsinfrastruktur auch das Überwachen von Ereignissen, die auf der Ebene der Workflowinstanzen auftreten. Die Instanzebenenereignisse, die überwacht werden können, sind in der TrackingWorkflowEvent-Enumeration definiert:

  • Created

  • Completed

  • Idle

  • Suspended

  • Resumed

  • Persisted

  • Unloaded

  • Loaded

  • Exception

  • Terminated

  • Aborted

  • Changed

  • Started

Weitere Informationen zu einzelnen Überwachungsereignissen finden Sie unter Erstellen und Verwenden von Überwachungsprofilen.

Explizite Überwachung auf Code-Ebene

Entwickler, die Workflows und Aufgaben erstellen, möchten den Code ggf. mit expliziten Überwachungsereignissen instrumentieren. Dies sollte nur durchgeführt werden, falls das Überwachungsprofil nicht zum Instrumentieren der Laufzeit für das gewünschte Überwachungsereignis verwendet werden kann.

Der Workflowautor kann eine der überladenen TrackData-Methoden auf ActivityExecutionContext zum Überwachen jeglicher Art von Informationen verwenden. Hinsichtlich der Anzahl der Benutzerüberwachungspunkte besteht keine Beschränkung, und es besteht keine Beschränkung hinsichtlich der Art von Daten, die von der Überwachungsmethode gesendet werden können. Sofern in der SqlTrackingService-Implementierung ein Objekt, das an den zweiten Parameter der TrackData-Methode übergeben wird, nicht binär serialisiert werden kann, sind die gespeicherten Daten das Ergebnis des Aufrufs der ToString-Methode dieses Objekts.

Beispielsweise handelt es sich bei der folgenden Klasse um ein benutzerdefiniertes Objekt, mit dem Debugnachrichten während der Aktivitätsausführung überwacht werden können. Die Klasse beinhaltet eine Message-Eigenschaft und eine MessageType-Eigenschaft, die angibt, ob die überwachte Nachricht informations-, warnungs-, fehler- oder debugbezogen ist und dem Endbenutzer daher nicht angezeigt wird. Zudem wird mit einer statischen Hilfsmethode ein neu erstelltes UserEventData-Objekt zurückgegeben, das während des Aufrufs der TrackData-Methode verwendet wird.

[C#]

using System;
using System.Collections.Generic;
using System.Text;

namespace Microsoft.Samples.Workflow.TrackData
{
    [Serializable]
    public class UserEventData
    {
        private UserEventType type = 0;
        private string message = "";

        public enum UserEventType
        {
            Info = 0,
            Warning = 1,
            Error = 2,
            Debug = 4
        };

        public UserEventType MessageType
        {
            get { return type; }
            set { type = value; }
        }

        public string Message
        {
            get { return message; }
            set { message = value; }
        }

        public static UserEventData NewMessage(UserEventType type, string message)
        {
            UserEventData ret = new UserEventData();
            ret.MessageType = type;
            ret.Message = message;
            return ret;
        }
    }
}

Die im Beispiel definierte UserEventData-Klasse kann beim Erstellen einer benutzerdefinierten Aktivität als benutzerdefiniertes Überwachungsobjekt verwendet werden. Rufen Sie zum Überwachen eines UserEventData-Objekts die TrackData-Methode auf, und übergeben Sie ein neues UserEventData-Objekt als das zu überwachende Objekt. Im folgenden Code wird gezeigt, wie dieser Schritt in einer benutzerdefinierten Aktivität durch Überschreiben der Execute-Methode vollzogen wird:

[C#]

protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
    this.TrackData(UserEventData.NewMessage(UserEventData.UserEventType.Debug, "Activity executing"));
}

Weitere Informationen zum Überwachen benutzerdefinierter Daten finden Sie unter Tracking Using User Track Points Sample.

Überwachen von reinen Markupworkflows

Mit reinen Workflow-Markupworkflows und der Überwachungsfunktion von Windows Workflow Foundation können Sie in jeder Workflowinstanz vor deren Start entweder ein generisches Überwachungsprofil oder ReloadTrackingProfiles verwenden, sofern Sie bestimmte Ereignisse/Elemente aus dieser Instanz überwachen möchten. Bei Verwendung von ReloadTrackingProfiles muss eine Workflowinstanz für das XML-BLOB erstellt, die Instanz-GUID abgerufen, ein instanzspezifisches Überwachungsprofil erstellt und anschließend die Instanz zum Neuladen der Profile aufgefordert werden. Beim Aufruf von GetProfile mit der Instanz-ID muss der Überwachungsdienst dieses Profil an das Workflow-Laufzeitmodul zurückgeben. Dies geschieht an der Stelle, an der die Korrelation zwischen Instanz und Profil auftritt.

Überwachungsregeln

Wird ein RuleSet ausgeführt, werden Überwachungsereignisse an Überwachungsdienste gesendet. Diese sind auf den Hosts konfiguriert, die für diese Ereignisse registriert wurden, indem ein UserTrackPoint zu ihrem Überwachungsprofil hinzugefügt wurde. Ein RuleActionTrackingEvent wird gesendet, das den Namen der ausgewerteten Regel sowie das Ergebnis der Bedingungsauswertung (true/false) zur Verfügung stellt. Weitere Informationen finden Sie unter RuleActionTrackingEvent Sample.

Die Auswertungsergebnisse von Regelbedingungen auf Aktivitäten können implizit durch Verfolgen der Aktivitätsausführung verfolgt werden.

Benutzerdefinierte Überwachungsdienste

Windows Workflow Foundation beinhaltet einen SqlTrackingService-Dienst, mit dem Sie in einer SQL Server-Datenbank gespeicherte Daten überwachen können. Aufgrund des von Windows Workflow Foundation verwendeten Erweiterbarkeitsmodells können benutzerdefinierte Überwachungsdienste erstellt werden, die ein anderes Speichermedium verwenden (beispielsweise eine lokale Datei), da das Laufzeitmodul das Endziel der Daten oder des Formats, in dem die Zustellung erfolgt, nicht beachtet. Weitere Informationen zum Erstellen eines benutzerdefinierten Überwachungsdiensts finden Sie unter Erstellen von benutzerdefinierten Überwachungsdiensten.

In diesem Abschnitt

Erstellen und Verwenden von Überwachungsprofilen

Verwenden von SqlTrackingService

Abfragen von SqlTrackingService-Daten mit SqlTrackingQuery

Datenpflege mit SqlTrackingService

Siehe auch

Referenz

System.Workflow.Runtime.Tracking
TrackData
TrackingWorkflowEvent
ActivityExecutionStatus

Konzepte

Erstellen von benutzerdefinierten Überwachungsdiensten

Weitere Ressourcen

Windows Workflow Foundation-Dienste
Übung 4: Verwenden von Laufzeitdiensten
Tracking Samples
Simple Tracking Example
Tracking Using User Track Points Sample

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.