Lektion 4: Überwachen des Auftragsdiensts mit Windows PowerShell
Veranschlagte Zeit: 25 Minuten
Lernziel: Erlernen, wie aktuelle und ältere Überwachungsdaten mit den Microsoft AppFabric 1.1 für Windows Server-Cmdlets für Windows PowerShell überwacht werden.
Zweck: Diese Lektion soll Ihnen helfen, sich besser mit den Instanzinformationen vertraut zu machen, die mithilfe der AppFabric-Cmdlets für Windows PowerShell zurückgegeben werden. Darüber hinaus wird vermittelt, wie diese Informationen zum Steuern von Instanzen verwendet werden.
Voraussetzungen
Bevor Sie mit dieser Lektion beginnen, müssen die folgenden Voraussetzungen erfüllt sein:
- Sie müssen Lektion 3: Konfigurieren des Auftragsdiensts mit Windows PowerShell abgeschlossen haben.
Verfahren
Im Rahmen dieser Lektion arbeiten Sie die folgenden Übungen durch:
Zurückgeben von Überwachungsinformationen mit Windows PowerShell
Steuern einer Workflowinstanz mit Windows PowerShell
Verwenden von Windows PowerShell zum Anzeigen von nachverfolgten Workflowereignissen aus der AppFabric-Überwachungsdatenbank
Zurückgeben von Überwachungsinformationen mit Windows PowerShell
So geben Sie WF-Instanzen für den OrderWorkflowService zurück, der mit der Order Service-Anwendung bereitgestellt wird
Führen Sie OrderClient.exe aus dem Verzeichnis C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug aus. Diese Datei war Bestandteil von Lektion 2: Bereitstellen des Auftragsdiensts mit Windows PowerShell. Sie können den folgenden Befehl nach Windows PowerShell kopieren, um die Anwendung OrderClient auszuführen.
C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
Klicken Sie im Bestellformular von Contoso.com auf Senden. Bevor Sie fortfahren, sollten Sie sich vergewissern, dass im Statusbereich am Fuß des Formulars der Hinweis Ihre Bestellung ist eingegangen angezeigt wird. Nachdem dieser Hinweis im Formular angezeigt wurde, wird eine Instanz des Auftragsworkflowdiensts ausgeführt, mit der die Verarbeitung einer Bestellung simuliert wird.
Notieren Sie die Uhrzeit, damit Sie einen Verweis auf die Erstellungszeit der Workflowinstanz haben.
Führen Sie den folgenden Befehl in Windows PowerShell aus, um Workflowinstanzen des Auftragsworkflowdiensts mit AppFabric-Cmdlets zurückzugeben.
Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
Mit diesem Befehl werden alle Instanzen des Auftragsworkflowdiensts in der Datenbank OrderService_PS abgerufen. Die Instanzen werden per Piping an das Format-List-Cmdlet weitergeleitet, wobei dessen Alias fl verwendet wird, um nur die gewünschten Workfloweigenschaften zurückzugeben.
Vergewissern Sie sich, dass Ihr Befehl eine Liste der Workflowinstanzen wie in der folgenden Liste dargestellt generiert hat.
InstanceId : 95a25419-0d71-42c4-ab70-aa523ba603fc Status : Running Condition : Active CreationTime : 11/1/2009 2:04:48 AM LastUpdateTime : 11/1/2009 2:04:56 AM SiteName : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx ExceptionMessage :
Mithilfe dieser Informationen können Sie Instanzen auf Status- und Ausnahmeinformationen überwachen.
Suchen Sie eine Instanz mit der in Schritt 3 notierten Erstellungszeit.
Steuern von Workflowinstanzen mit Windows PowerShell
In diesem Abschnitt erfahren Sie, wie Sie eine Workflowinstanz anhalten, fortsetzen und stoppen.
Führen Sie OrderClient.exe erneut aus, um sicherzustellen, dass aktuell eine Instanz ausgeführt wird. Mit dem folgenden Befehl in Windows PowerShell wird OrderClient ausgeführt.
C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
Klicken Sie im Bestellformular von Contoso.com auf Senden. Bevor Sie fortfahren, sollten Sie sich vergewissern, dass im Statusbereich am Fuß des Formulars der Hinweis Ihre Bestellung ist eingegangen angezeigt wird. Nachdem dieser Hinweis im Formular angezeigt wurde, wird eine Instanz des Auftragsworkflowdiensts ausgeführt, mit der die Verarbeitung einer Bestellung simuliert wird.
Notieren Sie die Uhrzeit, damit Sie einen Verweis auf die Erstellungszeit der Workflowinstanz haben.
Führen Sie den folgenden Befehl in Windows PowerShell aus, um Workflowinstanzen des Auftragsworkflowdiensts mit AppFabric-Cmdlets zurückzugeben.
Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" –Status Running | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
Vergewissern Sie sich, dass Ihr Befehl eine Liste der Workflowinstanzen wie in der folgenden Liste dargestellt generiert hat.
InstanceId : 95a25419-0d71-42c4-ab70-aa523ba603fc Status : Running Condition : Active CreationTime : 11/1/2009 2:04:48 AM LastUpdateTime : 11/1/2009 2:04:56 AM SiteName : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx ExceptionMessage :
Suchen Sie eine Instanz mit der „CreationTime“, die Sie in Schritt 3 notiert haben. Markieren Sie den GUID-Wert, der für die InstanceId angezeigt wird, indem Sie die Maus mit gedrückt gehaltener linker Maustaste über die GUID ziehen.
Nachdem die gesamte GUID markiert ist, klicken Sie mit der rechten Maustaste in die markierte GUID, um sie in die Zwischenablage zu kopieren.
Um die laufende Workflowinstanz anzuhalten, die mit der InstanceId in der Zwischenablage identifiziert wird, führen Sie den folgenden Befehl aus, wobei Sie die unten gezeigte GUID durch Ihre InstanceId ersetzen.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Suspend-ASAppServiceInstance
Mit diesem Befehl wird die Workflowinstanz anhand der InstanceId identifiziert und per Piping an das Suspend-ASAppServiceInstance-Cmdlet weitergeleitet, um den Workflow anzuhalten.
Wenn Sie den Workflow fortsetzen möchten, führen Sie den folgenden Befehl aus, wobei Sie die unten angezeigte GUID durch Ihre InstanceId ersetzen.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Resume-ASAppServiceInstance
Mit diesem Befehl wird die Workflowinstanz anhand der InstanceId identifiziert und per Piping an das Resume-ASAppServiceInstance-Cmdlet weitergeleitet, um den angehaltenen Workflow fortzusetzen.
Wenn Sie die Instanz stoppen und beenden möchten, führen Sie den folgenden Befehl aus, wobei Sie die unten angezeigte GUID durch Ihre InstanceId ersetzen.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Stop-ASAppServiceInstance -Terminate
Mit diesem Befehl wird die Workflowinstanz anhand der InstanceId identifiziert und per Piping an das Stop-ASAppServiceInstance-Cmdlet weitergeleitet, um den Workflow zu stoppen und zu beenden.
Anzeigen von nachverfolgten WF-Ereignissen mit Windows PowerShell
Basierend auf der Überwachungsstufe und dem Nachverfolgungsprofil, die bzw. das für einen Workflow konfiguriert wurden, können Sie viele Datenpunkte in einem Workflow nachverfolgen. Mit dem Set-ASAppMonitoring-Cmdlet aus Lesson 2: Configuring the Order Service with Windows PowerShell legen Sie die Überwachungsstufe auf HealthMonitoring fest. In diesem Abschnitt generieren Sie einen Bericht der WF-Ereignisse, die für Ihre Instanz nachverfolgt werden. Für das Zurückmelden dieser Informationen verwenden Sie erneut eine Skriptfunktion, die Sie dem Skriptmodul Utility.ps1 hinzufügen.
Geben Sie in Windows PowerShell den folgenden Befehl ein, um die Skriptdatei Utility.ps1 zu öffnen.
Notepad .\Utility.ps1
Kopieren Sie die folgende Skriptfunktion, und fügen Sie sie im Editor am Fuß des Skripts Utility.ps1 ein.
#============================================================================================# #=== ===# #=== Make sure the modules and snapins are loaded ===# #=== ===# #============================================================================================# function RegisterSnapIn($snapin) { $reg = Get-PSSnapin -Registered -Name $snapin $added = Get-PSSnapin -Name $snapin -ErrorAction SilentlyContinue if ($reg.Name -eq $snapin) { if ($added.Name -ne $snapin) { Add-PSSnapin $snapin } } } RegisterSnapIn "SqlServerProviderSnapin100" RegisterSnapIn "SqlServerCmdletSnapin100" Import-Module ApplicationServer #============================================================================================# #=== ===# #=== Retrieves WF Events for the given InstanceId from the specified monitoring database. ===# #=== ===# #============================================================================================# Function GetWFEvents($InstanceId,$database) { $SQL = "SELECT EventSources.Name AS WorkflowName, " + "EventSources.Computer, " + "EventSources.Site, " + "EventSources.VirtualPath, " + "WfEvents.Id AS EventID, " + "WfEvents.WorkflowInstanceId, " + "WfEvents.TimeCreated, " + "WfEvents.Name AS EventName, " + "WfEvents.State, " + "WfEvents.ActivityName, " + "WfEvents.Exception " + "FROM EventSources INNER JOIN " + "WfEvents ON EventSources.Id = WfEvents.EventSourceId " + "WHERE WfEvents.WorkflowInstanceId = `'$InstanceId`'" Invoke-Sqlcmd -Query $SQL -Database $database }
Mit diesem Scriptcode wird sichergestellt, dass die Komponenten, die für die Verwendung des SQL Server-Cmdlets erforderlich sind, in die Windows PowerShell-Sitzung geladen werden. Darüber hinaus wird eine Hilfsfunktion mit Namen GetWFEvents hinzugefügt. Mit dieser Funktion können Sie die Überwachungsdatenbank abfragen, wobei Sie Workflowereignisinformationen aus der Sicht Wfevents abrufen. Die von der Funktion verwendete SQL-Abfrage führt eine innere Verknüpfung mit der Sicht EventSources durch, um den mit den Ereignissen zusammenhängenden Workflow zu identifizieren.
Schließen Sie den Editor, und klicken Sie auf Speichern, um die Änderungen an Utility.ps1 zu speichern.
Führen Sie in Windows PowerShell den folgenden Befehl aus, um die neuen Änderungen an Utility.ps1 in die Windows PowerShell-Sitzung zu importieren.
Import-Module .\Utility.ps1
Geben Sie den folgenden Befehl in Windows PowerShell ein, um die neue Skriptfunktion zum Abfragen von Workflowereignissen zu verwenden, die in der Überwachungsdatenbank für Ihre Workflowinstanz aufgezeichnet wurden. Hierbei müssen Sie die unten angezeigte GUID unbedingt durch Ihre Instanz-ID ersetzen.
GetWFEvents 95a25419-0d71-42c4-ab70-aa523ba603fc OrderService_PS
Bei der Ausgabe in Windows PowerShell sollte es sich um eine Liste mit Ereignissen ähnlich der nachstehend gezeigten handeln.
WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.OrderWorkflow Computer : server1 Site : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx EventID : 975 WorkflowInstanceId : 95a25419-0d71-42c4-ab70-aa523ba603fc TimeCreated : 2009-11-01 10:06:57.6974305 EventName : Order completed State : Closed ActivityName : Exception : WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.OrderWorkflow Computer : server1 Site : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx EventID : 976 WorkflowInstanceId : 95a25419-0d71-42c4-ab70-aa523ba603fc TimeCreated : 2009-11-01 10:06:57.6974305 EventName : Order Service State : Closed ActivityName : Exception : WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.OrderWorkflow Computer : server1 Site : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx EventID : 977 WorkflowInstanceId : 95a25419-0d71-42c4-ab70-aa523ba603fc TimeCreated : 2009-11-01 10:06:57.6974305 EventName : State : Completed ActivityName : Exception :
Die in diesem Schritt zurückgegebenen Ereignisse umfassen Informationen zum Zustand und Status für Aktivitäten und Vorgänge im Workflow. Diese Informationen sind hilfreich für die Überwachung des Fortschritts eines Workflows zur Laufzeit.
Weitere Informationen zum Abfragen der Überwachungsdatenbank finden Sie unter Sichten und Tabellen der Überwachungsdatenbank.
Außerdem kann es sinnvoll sein, das Skriptbeispiel Abfragen der SQL-Überwachungsdatenbank mithilfe von Windows PowerShell durchzuarbeiten. Weitere Informationen finden Sie unter Beispiele.
Schritte dieser Übungseinheit
In dieser Lektion wurde vermittelt, wie Informationen zu von AppFabric überwachten Workflows zurückgegeben werden und wie eine Instanz identifiziert wird. Darüber hinaus haben Sie erfahren, wie Sie die Steuerungsvorgänge Anhalten, Fortsetzen und Stoppen auf Instanzen anwenden. Im letzten Schritt haben Sie eine neue Skriptfunktion, die dem Skriptmodul Utility.ps1 hinzugefügt wurde, verwendet, um Workflowereignisse aus der Überwachungsdatenbank zurückzugeben.
Weitere Schritte
Lektion 5: Nachverfolgen des Workflows mit Windows PowerShell
Siehe auch
Konzepte
Lektion 1: Erste Schritte in AppFabric-Cmdlets für Windows PowerShell
Lektion 2: Bereitstellen des Auftragsdiensts mit Windows PowerShell
Lektion 3: Konfigurieren des Auftragsdiensts mit Windows PowerShell
Lektion 4: Überwachen des Auftragsdiensts mit Windows PowerShell
Lektion 5: Nachverfolgen des Workflows mit Windows PowerShell
2012-03-05