Lezione 5: Rilevamento del flusso di lavoro con Windows PowerShell
Tempo di completamento: 25 minuti
Obiettivo: Apprendere come configurare un profilo di rilevamento per monitorare le variabili definite in un flusso di lavoro con Windows PowerShell.
Scopo: Lo scopo di questa lezione è spiegare come utilizzare i cmdlet di Windows Server AppFabric per configurare un profilo di rilevamento personalizzato per OrderService. È quindi possibile creare rapporti per le informazioni di rilevamento personalizzate tratte dall'archivio di monitoraggio utilizzando una funzione di script.
Prerequisiti
Prima di procedere, verificare che siano soddisfatti i requisiti seguenti:
È necessario aver distribuito l'applicazione del servizio OrderService come indicato nella Lezione 2: Distribuzione dell'applicazione del servizio OrderService con Windows PowerShell.
È necessario completare la Lezione 3: Configurazione del servizio OrderService con Windows PowerShell.
Per comprendere tutte le sezioni di questa lezione, occorre possedere una conoscenza di base di SQL Server.
Procedura
Questa lezione prevede il completamento dei passaggi seguenti:
Creare un nuovo profilo di rilevamento personalizzato per rappresentare le configurazioni eseguite con Windows PowerShell.
Creare rapporti sulla configurazione di rilevamento corrente con Windows PowerShell.
Configurare OrderWorkflowService con Windows PowerShell in modo che utilizzi il nuovo profilo di rilevamento personalizzato.
Creare rapporti sulle informazioni di rilevamento personalizzate tratte dall'archivio di monitoraggio utilizzando Windows PowerShell.
Creazione di un nuovo profilo di rilevamento personalizzato
In questa sezione verrà creato un nuovo profilo di rilevamento personalizzato che è in realtà una copia del profilo utilizzato nella Lezione 5: Ripresa di un flusso di lavoro sospeso mediante AppFabric dell'Esercitazione con l'interfaccia di Windows Server AppFabric. Il nome di questo nuovo profilo di rilevamento è seguito dal suffisso "_PS", in modo che sia possibile associarlo al profilo con le configurazioni dell'utente utilizzando i cmdlet di AppFabric.
In Windows PowerShell immettere il comando seguente.
Notepad OrderService_PS.tp
Fare clic su Sì quando Blocco note richiede di creare il nuovo file.
Copiare e incollare in Blocco note gli elementi XML seguenti.
<trackingProfile name="CustomOrderServiceProfile - Windows PowerShell Config"> <workflow activityDefinitionId="*"> <workflowInstanceQueries> <workflowInstanceQuery> <states> <state name="*" /> </states> </workflowInstanceQuery> </workflowInstanceQueries> <activityStateQueries> <activityStateQuery activityName="Wait for order"> <states> <state name="Closed" /> </states> <variables> <variable name="product"/> <variable name="quantity"/> </variables> </activityStateQuery> </activityStateQueries> <faultPropagationQueries> <faultPropagationQuery faultSourceActivityName="*" faultHandlerActivityName="*" /> </faultPropagationQueries> <bookmarkResumptionQueries> <bookmarkResumptionQuery name="*" /> </bookmarkResumptionQueries> <customTrackingQueries> <customTrackingQuery name="*" activityName="*" /> </customTrackingQueries> </workflow> </trackingProfile>
Questo profilo di rilevamento consente di monitorare le variabili product e quantity del flusso di lavoro nell'attività Wait for order in OrderWorkflow.xamlx.
Quando viene richiesto di salvare le modifiche apportate a OrderService_PS.tp, chiudere Blocco note e fare clic su Salva.
Creazione di rapporti sulla configurazione di rilevamento da Windows PowerShell
In questa sezione si utilizzano i cmdlet di AppFabric per Windows PowerShell per visualizzare la configurazione di rilevamento corrente per OrderWorkflowService.
Eseguire il comando seguente in Windows PowerShell per verificare se per OrderWorkflowService è attualmente abilitato il rilevamento.
Get-ASAppServiceTracking -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl *
I risultati devono essere simili ai seguenti.
IsTrackingEnabled : True ProfileName : HealthMonitoring Tracking Profile IsLocal : True BehaviorName :
Eseguire il comando seguente in Windows PowerShell per visualizzare i profili di rilevamento disponibili per OrderWorkflowService.
Get-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl Name
I risultati devono essere simili all'output seguente, che riporta i profili di rilevamento attualmente disponibili per OrderWorkflowService.
Name : Name : ErrorsOnly Tracking Profile Name : HealthMonitoring Tracking Profile Name : EndToEndMonitoring Tracking Profile Name : Troubleshooting Tracking Profile
Configurazione del rilevamento personalizzato utilizzando Windows PowerShell
In questa sezione si applicano i cmdlet di AppFabric per Windows PowerShell per configurare OrderWorkflowService in modo che utilizzi il nuovo profilo di rilevamento personalizzato.
Eseguire il comando seguente per aggiungere OrderService_PS.tp all'elenco dei profili di rilevamento disponibili per OrderWorkflowService.
Import-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" -FilePath $(Get-Item ".\OrderService_PS.tp").FullName | fl *
Si noti che per garantire la corretta esecuzione del comando, è necessario che OrderService_PS.tp si trovi nella directory corrente di Windows PowerShell.
I risultati dell'aggiunta del profilo di rilevamento devono essere simili ai seguenti.
Name : CustomOrderServiceProfile - Windows PowerShell Config SiteName : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx IsLocal : True
Eseguire il comando seguente in Windows PowerShell per visualizzare il nuovo elenco di profili di rilevamento disponibili per OrderWorkflowService.
Get-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl Name
I risultati devono essere simili ai seguenti, che includono il profilo denominato "CustomOrderServiceProfile - Windows PowerShell Config".
Name : Name : ErrorsOnly Tracking Profile Name : HealthMonitoring Tracking Profile Name : EndToEndMonitoring Tracking Profile Name : Troubleshooting Tracking Profile Name : CustomOrderServiceProfile - Windows PowerShell Config
Per configurare OrderWorkflowService in modo che utilizzi il nuovo profilo denominato "CustomOrderServiceProfile - Windows PowerShell Config", eseguire il comando seguente in Windows PowerShell.
Set-ASAppServiceTracking -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" -ProfileName "CustomOrderServiceProfile - Windows PowerShell Config" | fl *
I risultati devono essere simili ai seguenti.
IsTrackingEnabled : True ProfileName : CustomOrderServiceProfile - Windows PowerShell Config IsLocal : True BehaviorName :
Eseguire il comando seguente in Windows PowerShell per visualizzare la nuova configurazione di rilevamento per OrderWorkflowService.
Get-ASAppServiceTracking -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl *
La configurazione di rilevamento deve essere segnalata come segue.
IsTrackingEnabled : True ProfileName : CustomOrderServiceProfile - Windows PowerShell Config IsLocal : True BehaviorName :
Utilizzo di Windows PowerShell per creare rapporti sui dati di rilevamento personalizzati
In questa sezione si utilizza una funzione di script per creare un rapporto sugli eventi flusso di lavoro per le variabili del flusso di lavoro rilevate e configurate nella sezione precedente. Per creare un rapporto sulle nuove informazioni di rilevamento, è necessario eseguire una nuova istanza del flusso di lavoro e generare i dati di rilevamento con la nuova configurazione di rilevamento.
Aggiunta di una nuova funzione di script per creare rapporti sulle informazioni di rilevamento
Effettuare i passaggi seguenti per aggiungere a Utility.ps1 una nuova funzione di script per la creazione di rapporti sulle informazioni di rilevamento personalizzate.
In Windows PowerShell immettere il comando seguente.
Notepad .\Utility.ps1
Copiare e incollare il codice di script riportato di seguito alla fine di Utility.ps1 in Blocco note.
#============================================================================================# #=== ===# #=== Retrieves Tracked WF Variable Events for the given workflow and variable from the ===# #=== specified monitoring store. ===# #=== ===# #============================================================================================# Function GetTrackedWFVariableEvents($FullWorkflowName,$trackedVariable,$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, " + "WfEventProperties.Name AS TrackedVariableName, " + "WfEventProperties.Value AS TrackedVariableValue " + "FROM EventSources INNER JOIN " + "WfEvents ON EventSources.Id = WfEvents.EventSourceId INNER JOIN " + "WfEventProperties ON WfEvents.Id = WfEventProperties.EventId " + "WHERE EventSources.Name = `'$FullWorkflowName`' AND WfEventProperties.Name = `'$trackedVariable`'" Invoke-Sqlcmd -Query $SQL -Database $database }
Questa nuova funzione GetTrackedWFVariableEvents è una versione solo lievemente modificata della funzione GetWFEvents. Aggiunge un ulteriore INNER JOIN con la visualizzazione WfEventProperties per la creazione di rapporti sui nomi delle variabili rilevati e sui relativi valori. Filtra inoltre le query SQL in base non a InstanceId, ma al nome del flusso di lavoro e al nome della variabile rilevato. Questo consente di identificare l'istanza del flusso di lavoro in base al valore Quantity definito al momento dell'inoltro dell'ordine. Realisticamente, per il rilevamento è consigliabile esporre un ID ordine.
Chiudere Blocco note e fare clic su Salva per salvare le modifiche apportate a Utility.ps1.
Immettere il comando seguente in Windows PowerShell per importare le nuove modifiche apportate a Utility.ps1 per la sessione di Windows PowerShell corrente.
Import-Module .\Utility.ps1
Generazione e creazione di rapporti sui nuovi dati di rilevamento
Eseguire OrderClient.exe. Questo file deve essere stato distribuito nella directory C:\DublinTutorial\OrderClient come indicato nella Lezione 1: Guida introduttiva per l'Esercitazione con l'interfaccia di Windows Server AppFabric.
Immettere 88 per il valore Quantity.
Fare clic su Invia in Modulo ordine Contoso.com. Prima di continuare, verificare che la sezione dello stato nella parte inferiore del modulo riporti Ordine ricevuto. Quando nel modulo risulta presente questa conferma, viene eseguita una nuova istanza del flusso di lavoro dell'ordine per simulare l'elaborazione di un ordine.
Attendere circa 30 secondi per consentire la registrazione delle informazioni di rilevamento.
Nella finestra di Windows PowerShell immettere il comando seguente per creare un rapporto sugli eventi rilevamento.
GetTrackedWFVariableEvents "Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.OrderWorkflow" quantity OrderService_PS
I risultati devono essere simili al rapporto seguente. Si noti la presenza di TrackedVariableName e TrackedVariableValue rilevati per l'istanza del flusso di lavoro.
WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.OrderWorkflow Computer : server1 Site : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx EventID : 1439 WorkflowInstanceId : ac0fd7fb-d463-4683-9c75-80d90a8b75ed TimeCreated : 2009-11-02 10:09:21.3108822 EventName : Wait for order State : Closed ActivityName : Exception : TrackedVariableName : quantity TrackedVariableValue : 88
Riepilogo
In questa lezione è stato creato un nuovo profilo di rilevamento e sono stati applicati i cmdlet di AppFabric per Windows PowerShell per configurare OrderWorkflowService in modo che utilizzi il nuovo profilo. Sono state quindi generate le informazioni di rilevamento mediante la creazione di una nuova istanza del flusso di lavoro ed è stato creato un rapporto sui dati di rilevamento utilizzando una funzione di script Windows PowerShell personalizzata.
Vedere anche
Concetti
Lezione 1: Introduzione ai cmdlet di Windows Server AppFabric per Windows PowerShell
Lezione 2: Distribuzione dell'applicazione del servizio OrderService con Windows PowerShell
Lezione 3: Configurazione del servizio OrderService con Windows PowerShell
Lezione 4: Monitoraggio del servizio OrderService con Windows PowerShell
2011-12-05