Partager via


Leçon 5 : suivi du flux de travail avec Windows PowerShell

Durée : 25 minutes

Objectif : apprendre à configurer un modèle de suivi pour surveiller des variables définies dans un flux de travail à l'aide de Windows PowerShell.

Fonction : présenter l'utilisation des cmdlets de Microsoft AppFabric 1.1 pour Windows Server pour configurer un modèle de suivi personnalisé pour l'application Order Service. Afficher les informations de suivi personnalisé du magasin de surveillance à l'aide d'une fonction de script.

Configuration préalable

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

Procédure

Au cours de cette leçon, vous allez effectuer les opérations suivantes :

  1. créer un modèle de suivi personnalisé pour représenter les configurations définies à l'aide de Windows PowerShell ;

  2. afficher la configuration de suivi actuelle à l'aide de Windows PowerShell ;

  3. utiliser Windows PowerShell pour configurer l'utilisation du nouveau modèle de suivi personnalisé par l'application OrderWorkflowService ;

  4. afficher les informations de suivi personnalisé du magasin de surveillance à l'aide de Windows PowerShell.

Création d'un modèle de suivi personnalisé

Dans cette section, vous allez créer un modèle de suivi personnalisé (copie de celui utilisé dans la Leçon 5 : suivi du flux de travail avec Windows PowerShell du didacticiel de l'application Order Service). Le nom du nouveau modèle de suivi incluera le suffixe « _PS », de sorte que vous pourrez l'associer à vos configurations à l'aide des cmdlets d'AppFabric.

  1. Dans Windows PowerShell, entrez la commande suivante.

    Notepad OrderService_PS.tp
    

    Cliquez sur Oui lorsque le Bloc-notes vous invite à créer le nouveau fichier.

  2. Copiez et collez les éléments XML suivants dans le Bloc-notes.

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

    Ce modèle de suivi permet de suivre les variables de flux de travail product et quantity dans l'activité Wait for order du fichier OrderWorkflow.xamlx.

  3. Fermez le Bloc-notes et cliquez sur Enregistrer lorsque vous êtes invité à enregistrer les modifications apportées au fichier OrderService_PS.tp.

Affichage de la configuration de suivi à l'aide de Windows PowerShell

Dans cette section, vous allez utiliser les cmdlets d'AppFabric pour Windows PowerShell pour afficher la configuration de suivi actuelle de l'application OrderWorkflowService.

  1. Dans Windows PowerShell, exécutez la commande suivante pour découvrir si le suivi est actuellement activé pour l'application OrderWorkflowService.

    Get-ASAppServiceTracking -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl *
    

    Le résultat doit ressembler à ce qui suit.

    IsTrackingEnabled : True
    ProfileName       : HealthMonitoring Tracking Profile
    IsLocal           : True
    BehaviorName      :
    
  2. Dans Windows PowerShell, exécutez la commande suivante pour afficher les modèles de suivi disponibles pour l'application OrderWorkflowService.

    Get-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl Name
    

    Le résultat doit ressembler à ce qui suit.

    Name :
    
    Name : ErrorsOnly Tracking Profile
    
    Name : HealthMonitoring Tracking Profile
    
    Name : EndToEndMonitoring Tracking Profile
    
    Name : Troubleshooting Tracking Profile
    

Configuration du suivi personnalisé à l'aide de Windows PowerShell

Dans cette section, vous allez utiliser les cmdlets d'AppFabric pour Windows PowerShell pour configurer l'utilisation du nouveau modèle de suivi personnalisé par l'application OrderWorkflowService.

  1. Exécutez la commande suivante pour ajouter le fichier OrderService_PS.tp à la liste des modèles de suivi disponibles pour l'application OrderWorkflowService.

    Import-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" -FilePath $(Get-Item ".\OrderService_PS.tp").FullName | fl *
    

    Notez que le fichier OrderService_PS.tp doit être placé dans le répertoire actuel de Windows PowerShell pour que la commande soit correctement exécutée.

    Le résultat de l'opération doit ressembler à ce qui suit.

    Name        : CustomOrderServiceProfile - Windows PowerShell Config
    SiteName    : OrderService_PS
    VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx
    IsLocal     : True
    
  2. Dans Windows PowerShell, exécutez la commande suivante pour afficher la nouvelle liste des modèles de suivi disponibles pour l'application OrderWorkflowService.

    Get-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl Name
    

    Le résultat doit ressembler à ce qui suit (inclut le modèle « 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
    
  3. Pour configurer l'utilisation du nouveau modèle appelé « CustomOrderServiceProfile - Windows PowerShell Config » par l'application OrderWorkflowService, exécutez la commande suivante dans Windows PowerShell.

    Set-ASAppServiceTracking -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" -ProfileName "CustomOrderServiceProfile - Windows PowerShell Config" | fl *
    

    Le résultat doit ressembler à ce qui suit.

    IsTrackingEnabled : True
    ProfileName       : CustomOrderServiceProfile - Windows PowerShell Config
    IsLocal           : True
    BehaviorName      :
    
  4. Dans Windows PowerShell, exécutez la commande suivante pour afficher la nouvelle configuration de suivi de l'application OrderWorkflowService.

    Get-ASAppServiceTracking -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl *
    

    La configuration de suivi doit être affichée comme suit.

    IsTrackingEnabled : True
    ProfileName       : CustomOrderServiceProfile - Windows PowerShell Config
    IsLocal           : True
    BehaviorName      :
    

Utilisation de Windows PowerShell pour afficher les données de suivi personnalisé

Dans cette section, vous allez utiliser une fonction de script pour afficher les événements de flux de travail des variables de flux de travail suivies que vous avez configurées dans la section précédente. Pour afficher les nouvelles informations de suivi, vous devez exécuter une nouvelle instance de flux de travail et générer les données de suivi à l'aide de la nouvelle configuration de suivi.

Ajout d'une nouvelle fonction de script pour afficher les informations de suivi

Effectuez les opérations suivantes pour ajouter une nouvelle fonction de script au fichier Utility.ps1 et afficher les informations de suivi personnalisé.

  1. Dans Windows PowerShell, entrez la commande suivante.

    Notepad .\Utility.ps1
    
  2. Copiez et collez le code de script suivant en bas du fichier Utility.ps1 dans le Bloc-notes.

    #============================================================================================#
    #===                                                                                      ===#
    #=== 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
    }
    

    Cette nouvelle fonction GetTrackedWFVariableEvents comporte une légère modification par rapport à la fonction GetWFEvents. Elle ajoute un INNER JOIN à la vue WfEventProperties pour afficher les noms des variables suivies et leurs valeurs. Elle filtre également la requête SQL selon les noms de flux de travail et de variable suivie au lieu de l'ID d'instance (InstanceId). Ceci permet d'identifier l'instance de flux de travail par la valeur Quantity définie lorsque vous passez une commande. Un ID de commande doit être exposé à des fins de suivi.

  3. Fermez le Bloc-notes et cliquez sur Enregistrer pour enregistrer les modifications apportées au fichier Utility.ps1.

  4. Dans Windows PowerShell, entrez la commande suivante pour importer les nouvelles modifications apportées au fichier Utility.ps1 pour la session Windows PowerShell actuelle.

    Import-Module .\Utility.ps1
    

Génération et affichage des nouvelles données de suivi

  1. Exécutez OrderClient.exe. Ce fichier doit avoir été déployé dans le dossier C:\DublinTutorial\OrderClient comme décrit dans la Leçon 1 : prise en main des cmdlets d'AppFabric pour Windows PowerShell du didacticiel de l'application Order Service.

  2. Entrez 88 pour la valeur Quantity.

  3. Cliquez sur Submit dans le formulaire de commande Contoso.com. En bas du formulaire, vérifiez que la section d'état affiche le texte Your order has been received avant de poursuivre. Une nouvelle instance du flux de travail de commande est ensuite exécutée et simule le traitement d'une commande.

  4. Patientez environ 30 secondes, le temps que les informations de suivi soient enregistrées.

  5. Dans la fenêtre de Windows PowerShell, entrez la commande suivante pour afficher les événements de suivi.

    GetTrackedWFVariableEvents "Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.OrderWorkflow" quantity OrderService_PS
    

    Le résultat doit ressembler au rapport suivant. Notez les variables TrackedVariableName et TrackedVariableValue suivies pour l'instance de flux de travail.

    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
    

Actions effectuées

Dans cette leçon, vous avez créé un modèle de suivi et utilisé les cmdlets d'AppFabric pour Windows PowerShell pour configurer l'utilisation de ce nouveau modèle par l'application OrderWorkflowService. Vous avez ensuite généré les informations de suivi en créant une instance du flux de travail, puis vous avez affiché les données de suivi à l'aide d'une fonction de script Windows PowerShell personnalisée.

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