Partage via


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 Microsoft AppFabric 1.1 pour Windows Server 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.

Conditions préalables

Les conditions suivantes sont requises avant de commencer cette leçon :

Procédure

Au cours de cette leçon, vous allez exécuter les exercices suivants :

  1. rapporter des informations de surveillance avec Windows PowerShell ;

  2. contrôler une instance de flux de travail avec Windows PowerShell ;

  3. 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

  1. Exécutez OrderClient.exe à partir du répertoire C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug. Ce fichier a été créé dans 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
    
  2. 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.

  3. Notez l'heure afin de pouvoir recouper l'heure de création d'une instance de flux de travail.

  4. 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.

  5. 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.

  6. 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.

  1. 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
    
  2. 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.

  3. Notez l'heure afin de pouvoir recouper l'heure de création d'une instance de flux de travail.

  4. 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
    
  5. 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 :
    
  6. 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.

  7. Une fois le GUID entièrement en surbrillance, cliquez dedans avec le bouton droit pour le copier dans le Presse-papiers.

  8. 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.

  9. 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.

  10. 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 2 : déploiement 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.

  1. Dans Windows PowerShell, entrez la commande suivante pour ouvrir le fichier de script Utility.ps1.

    Notepad .\Utility.ps1
    
  2. 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.

  3. Fermez le Bloc-notes, puis cliquez sur Enregistrer pour enregistrer les modifications dans Utility.ps1.

  4. 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
    
  5. 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
    
  6. 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 d'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 4 : surveillance de l'application OrderService avec Windows PowerShell
Leçon 5 : suivi du flux de travail avec Windows PowerShell

  2012-03-05