Leçon 4 : surveillance de l'application OrderService avec Windows PowerShell
Durée : 25 minutes
Objectif : découvrir comment analyser les données de surveillance en temps réel et d'historique à l'aide des cmdlets Windows Server AppFabric pour Windows PowerShell.
Fonction : vous familiariser avec les informations d'instance rapportées à l'aide de cmdlets AppFabric pour Windows PowerShell, ainsi qu'utiliser ces informations pour contrôler des instances.
Configuration préalable
Les conditions suivantes sont requises avant de commencer cette leçon :
- Vous devez suivre la Leçon 3 : configuration de l'application OrderService avec Windows PowerShell avant de commencer cette leçon.
Procédure
Au cours de cette leçon, vous allez exécuter les exercices suivants :
rapporter des informations de surveillance avec Windows PowerShell ;
contrôler une instance de flux de travail avec Windows PowerShell ;
utiliser Windows PowerShell pour afficher des événements de flux de travail suivis à partir de la base de données de surveillance AppFabric.
Rapport d'informations de surveillance avec Windows PowerShell
Pour rapporter des instances de flux de travail pour le service OrderWorkflowService déployé avec l'application Order Service
Exécutez OrderClient.exe à partir du répertoire C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug. Ce fichier a été créé dans le cadre de la Leçon 2 : déploiement de l'application OrderService avec Windows PowerShell. Vous pouvez copier la commande suivante dans Windows PowerShell pour exécuter l'application OrderClient.
C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
Dans le formulaire de commande Contoso.com, cliquez sur Submit. Avant de continuer, vérifiez que la section « Status » au bas du formulaire indique Your order has been received. Après affichage de cette mention dans le formulaire, une instance du service OrderWorkflowService s'exécute, qui simule le traitement d'une commande.
Notez l'heure afin de pouvoir recouper l'heure de création d'une instance de flux de travail.
Pour rapporter des instances de flux de travail du service OrderWorkflowService à l'aide des cmdlets AppFabric, exécutez la commande suivante dans Windows PowerShell.
Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
Cette commande obtient toutes les instances du service OrderWorkflowService dans la base de données OrderService_PS. Les instances sont canalisées vers la cmdlet Format-List à l'aide de son alias fl pour rapporter uniquement les propriétés de flux de travail souhaitées.
Vérifiez que votre commande a généré une liste d'instances de flux de travail similaire à la liste suivante.
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 :
Ces informations permettent de surveiller les informations d'état et d'exception des instances.
Recherchez une instance dont l'heure de création (CreationTime) correspond à l'heure que vous avez notée à l'étape 3.
Contrôle des instances de flux de travail avec Windows PowerShell
Dans cette section, vous allez interrompre, reprendre et arrêter une instance de flux de travail.
Exécutez de nouveau OrderClient.exe pour vous assurer que vous avez une instance en état d'exécution. Dans Windows PowerShell, la commande suivante exécute l'application OrderClient.
C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
Dans le formulaire de commande Contoso.com, cliquez sur Submit. Avant de continuer, vérifiez que la section « Status » au bas du formulaire indique Your order has been received. Après affichage de cette mention dans le formulaire, une instance du service OrderWorkflowService s'exécute, qui simule le traitement d'une commande.
Notez l'heure afin de pouvoir recouper l'heure de création d'une instance de flux de travail.
Rapportez les instances de flux de travail du service OrderWorkflowService à l'aide des cmdlets AppFabric en exécutant la commande suivante dans Windows PowerShell.
Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" –Status Running | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
Vérifiez que votre commande a généré une liste d'instances de flux de travail similaire à la liste suivante.
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 :
Recherchez une instance dont l'heure de création (CreationTime) correspond à l'heure que vous avez notée à l'étape 3. Mettez en surbrillance la valeur de GUID présentée pour InstanceId en faisant glisser la souris sur le GUID tout en appuyant sur le bouton gauche.
Une fois le GUID entièrement en surbrillance, cliquez dedans avec le bouton droit pour le copier dans le Presse-papiers.
Pour interrompre l'exécution de l'instance de flux de travail identifiée par InstanceId dans le Presse-papiers, exécutez la commande suivante, en substituant votre InstanceId au GUID indiqué ci-dessous.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Suspend-ASAppServiceInstance
Cette commande obtient l'instance de flux de travail identifiée par InstanceId et la canalise vers la cmdlet Suspend-ASAppServiceInstance pour interrompre le flux de travail.
Pour reprendre le flux de travail, exécutez la commande suivante, en substituant votre InstanceId au GUID indiqué ci-dessous.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Resume-ASAppServiceInstance
Cette commande obtient l'instance de flux de travail identifiée par InstanceId et la canalise vers la cmdlet Resume-ASAppServiceInstance pour reprendre le flux de travail interrompu.
Pour arrêter et mettre fin à l'instance, exécutez la commande suivante, en substituant votre InstanceId au GUID indiqué ci-dessous.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Stop-ASAppServiceInstance -Terminate
Cette commande obtient l'instance de flux de travail identifiée par InstanceId et la canalise vers la cmdlet Stop-ASAppServiceInstance pour arrêter et mettre fin au flux de travail.
Affichage d'événements WF suivis avec Windows PowerShell
En fonction du niveau de surveillance et du modèle de suivi configurés pour un flux de travail, vous pouvez suivre de nombreux points de données dans un flux de travail. Pour définir le niveau de surveillance sur HealthMonitoring, utilisez la cmdlet Set-ASAppMonitoring décrite dans la Leçon 3 : configuration de l'application OrderService avec Windows PowerShell. Dans cette section, vous allez générer un rapport des événements WF suivis pour votre instance. Pour rapporter ces informations, vous allez de nouveau utiliser une fonction de script que vous ajouterez à votre module de script Utility.ps1.
Dans Windows PowerShell, entrez la commande suivante pour ouvrir le fichier de script Utility.ps1.
Notepad .\Utility.ps1
Dans le Bloc-notes, copiez et collez la fonction de script suivante au bas du script Utility.ps1.
#============================================================================================# #=== ===# #=== 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 }
Ce code de script vérifie que tous les composants requis pour l'utilisation des cmdlets SQL Server sont chargés dans la session Windows PowerShell. Il ajoute également une fonction utilitaire nommée GetWFEvents. Celle-ci permet d'interroger la base de données de surveillance, en extrayant des informations d'événement de flux de travail de la vue Wfevents. La requête SQL utilisée par la fonction effectue une jointure interne avec la vue EventSources pour identifier le flux de travail associé aux événements.
Fermez le Bloc-notes, puis cliquez sur Enregistrer pour enregistrer les modifications dans Utility.ps1.
Dans Windows PowerShell, exécutez la commande suivante pour importer les nouvelles modifications apportées à Utility.ps1 dans votre session Windows PowerShell.
Import-Module .\Utility.ps1
Entrez la commande suivante dans Windows PowerShell pour utiliser la nouvelle fonction de script afin d'interroger les événements de flux de travail enregistrés dans la base de données de surveillance pour votre instance de flux de travail. Veillez à substituer votre ID d'instance au GUID indiqué ci-dessous.
GetWFEvents 95a25419-0d71-42c4-ab70-aa523ba603fc OrderService_PS
La sortie dans Windows PowerShell doit être une liste d'événements similaire à celle ci-dessous.
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 :
Les événements rapportés dans cette étape fournissent des informations sur l'état des activités et opérations du flux de travail. Ces informations sont utiles pour surveiller la progression d'un flux de travail en cours d'exécution.
Pour plus d'informations sur l'interrogation de la base de données de surveillance, consultez la rubrique Vues et tables des bases de données de surveillance.
Vous pouvez également examiner l'exemple de script Interrogation de la base de données de surveillance SQL à l'aide de Windows PowerShell. Pour plus d'informations, consultez la rubrique Exemples.
Actions effectuées
Au cours de cette leçon, vous avez appris à rapporter les informations de flux de travail surveillées par AppFabric et à identifier une instance. Vous avez également appris à utiliser les opérations de contrôle permettant d'interrompre, de reprendre et d'arrêter des instances. Enfin, vous avez utilisé une nouvelle fonction de script ajoutée au module de script Utility.ps1 pour rapporter des événements de flux de travail de la base de données de surveillance.
Étapes suivantes
Leçon 5 : suivi du flux de travail avec Windows PowerShell
Voir aussi
Concepts
Leçon 1 : prise en main des cmdlets de Windows Server AppFabric pour Windows PowerShell
Leçon 2 : déploiement de l'application OrderService avec Windows PowerShell
Leçon 3 : configuration de l'application OrderService avec Windows PowerShell
Leçon 5 : suivi du flux de travail avec Windows PowerShell
2011-12-05