Lezione 4: monitoraggio del servizio OrderService con Windows PowerShell

Tempo di completamento: 25 minuti

Obiettivo: Apprendere come monitorare dati cronologici di monitoraggio e in tempo reale utilizzando i cmdlet di Microsoft AppFabric 1.1 per Windows Server per Windows PowerShell.

Scopo: Lo scopo di questa lezione è aiutare l'utente a familiarizzare con le informazioni di istanza ottenute tramite i cmdlet di AppFabric per Windows PowerShell e come utilizzare tali informazioni per controllare le istanze.

Prerequisiti

Si noti che prima di iniziare la lezione, sono necessari i prerequisiti seguenti:

Procedura

In questa lezione verranno svolti gli esercizi seguenti:

  1. Creazione di rapporti relativi alle informazioni di monitoraggio con Windows PowerShell.

  2. Controllo di un'istanza del flusso di lavoro con Windows PowerShell.

  3. Utilizzare Windows PowerShell per visualizzare eventi del flusso di lavoro rilevati dal database di monitoraggio di AppFabric.

Creazione di rapporti relativi alle informazioni di monitoraggio con Windows PowerShell

Per creare rapporti relativi alle istanze WF per OrderWorkflowService distribuito con l'applicazione OrderService

  1. Eseguire OrderClient.exe dalla directory C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug. Il file è stato creato in Lezione 2: distribuzione dell'applicazione del servizio OrderService con Windows PowerShell. Per eseguire OrderClient, è possibile copiare il comando seguente in Windows PowerShell.

    C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
    
  2. 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. Dopo tale visualizzazione nel modulo, viene eseguita un'istanza di OrderWorkflowService che simula l'elaborazione di un ordine.

  3. Prendere nota del tempo per consentire riferimenti incrociati con il tempo di creazione di un'istanza del flusso di lavoro.

  4. Per creare rapporti relativi alle istanze del flusso di lavoro di OrderWorkflowService utilizzando i cmdlet di AppFabric, eseguire il comando seguente in Windows PowerShell.

    Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
    

    Il comando consente di registrare tutte le istanze di OrderWorkflowService nel database OrderService_PS. Viene eseguito il piping delle istanze nel cmdlet Format-List utilizzando l'alias fl per generare rapporti relativi alle sole proprietà del flusso di lavoro desiderate.

  5. Verificare che tramite il comando sia stato generato un elenco di istanze del flusso di lavoro simile all'elenco seguente.

    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 :
    

    È possibile utilizzare le informazioni per monitorare le istanze al fine di ottenere informazioni sullo stato e sulle eccezioni.

  6. Ricercare un'istanza con CreationTime annotato al passaggio 3.

Controllo delle istanze del flusso di lavoro con Windows PowerShell

In questa sezione vengono fornite informazioni su come sospendere, riprendere e interrompere un'istanza del flusso di lavoro.

  1. Eseguire nuovamente OrderClient.exe per verificare che l'istanza sia in esecuzione. Il comando seguente in Windows PowerShell consente di eseguire OrderClient.

    C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
    
  2. 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. Dopo tale visualizzazione nel modulo, viene eseguita un'istanza di OrderWorkflowService che simula l'elaborazione di un ordine.

  3. Prendere nota del tempo per consentire riferimenti incrociati con il tempo di creazione di un'istanza del flusso di lavoro.

  4. Creare rapporti relativi alle istanze del flusso di lavoro di OrderWorkflowService utilizzando i cmdlet di AppFabric eseguendo il comando seguente in Windows PowerShell.

    Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" –Status Running | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
    
  5. Verificare che tramite il comando sia stato generato un elenco di istanze del flusso di lavoro simile all'elenco seguente.

    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. Ricercare un'istanza con CreationTime annotato al passaggio 3. Evidenziare il valore GUID mostrato per InstanceId passando il mouse sopra il GUID e mantenendo il pulsante sinistro premuto.

  7. Dopo aver selezionato l'intero GUID, fare clic con il pulsante destro del mouse su un GUID evidenziato per copiare il GUID negli Appunti.

  8. Per sospendere l'istanza del flusso di lavoro in esecuzione identificata da InstanceId negli Appunti, eseguire il comando seguente, sostituendo InstanceId al GUID mostrato di seguito.

    Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Suspend-ASAppServiceInstance
    

    Il comando consente di ottenere l'istanza del flusso di lavoro identificato da InstanceId e ne esegue il piping nel cmdlet Suspend-ASAppServiceInstance per sospendere il flusso di lavoro.

  9. Per riprendere il flusso di lavoro, eseguire il comando seguente sostituendo InstanceId al GUID visualizzato di seguito.

    Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Resume-ASAppServiceInstance
    

    Il comando consente di ottenere l'istanza del flusso di lavoro identificato da InstanceId e ne esegue il piping nel cmdlet Resume-ASAppServiceInstance per riprendere il flusso di lavoro sospeso.

  10. Per interrompere e terminare l'istanza, eseguire il comando seguente sostituendo InstanceId al GUID visualizzato di seguito.

    Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Stop-ASAppServiceInstance -Terminate
    

    Il comando consente di ottenere l'istanza del flusso di lavoro identificato da InstanceId e ne esegue il piping nel cmdlet Stop-ASAppServiceInstance per arrestare e terminare il flusso di lavoro.

Visualizzazione di eventi WF rilevati con Windows PowerShell

In base al livello di monitoraggio e al profilo di rilevamento configurati per un flusso di lavoro è possibile rilevare diversi punti dati in un flusso di lavoro. Impostare il livello di monitoraggio su HealthMonitoring utilizzando il cmdlet Set-ASAppMonitoring in Lezione 2: distribuzione dell'applicazione del servizio OrderService con Windows PowerShell. In questa sezione vengono fornite informazioni su come generare un rapporto relativo agli eventi WF rilevati per l'istanza. Per segnalare tali informazioni verrà utilizzato nuovamente una funzione di script che verrà aggiunta al modulo dello script Utility.ps1.

  1. In Windows PowerShell, immettere il comando seguente per aprire il file di script Utility.ps1.

    Notepad .\Utility.ps1
    
  2. Copiare e incollare la funzione di script seguente nel Blocco note alla fine dello 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
    }
    

    Il codice di script verifica che i componenti necessari per l'utilizzo dei cmdlet di SQL Server vengano caricati nella sessione di Windows PowerShell. Inoltre, consente di aggiungere una funzione di utilità denominata GetWFEvents. Tale funzione consente di inviare query al database di monitoraggio, recuperando informazioni di evento del flusso di lavoro dalla visualizzazione Wfevents. La query SQL utilizzata dalla funzione consente di eseguire un'associazione interna con la visualizzazione EventSources al fine di identificare il flusso di lavoro associato agli eventi.

  3. Chiudere Blocco note e fare clic su Salva per salvare le modifiche apportate a Utility.ps1.

  4. In Windows PowerShell, eseguire il comando seguente per importare le nuove modifiche a Utility.ps1 nella sessione di Windows PowerShell.

    Import-Module .\Utility.ps1
    
  5. Immettere il comando seguente in Windows PowerShell per utilizzare la nuova funzione di script che consente di cercare eventi del flusso di lavoro registrati nel database di monitoraggio per l'istanza del flusso di lavoro. Assicurarsi di sostituire l'ID istanza al GUID visualizzato di seguito.

    GetWFEvents 95a25419-0d71-42c4-ab70-aa523ba603fc OrderService_PS
    
  6. L'output in Windows PowerShell dovrebbe essere un elenco di eventi simile a quello visualizzato di seguito.

    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          :
    

Gli eventi segnalati in questo passaggio forniscono informazioni sullo stato delle attività e delle operazioni del flusso di lavoro. tali informazioni consentono di monitorare l'avanzamento di un flusso di lavoro durante l'esecuzione.

Per ulteriori informazioni sull'invio di query al database di monitoraggio, vedere Viste e tabelle del database di monitoraggio.

Potrebbe essere utile, inoltre, rivedere l'esempio di script Query del database di monitoraggio SQL tramite Windows PowerShell. Per ulteriori informazioni, vedere Esempi.

In questa lezione è stato spiegato come segnalare informazioni relative al flusso di lavoro monitorate da AppFabric e come identificare un'istanza. Inoltre, è stato spiegato come utilizzare le operazioni di controllo relative alla sospensione, ripresa e interruzione sulle istanze. Infine, è stata utilizzata una nuova funzione di script aggiunta al modulo dello script Utility.ps1 per segnalare eventi del flusso di lavoro dal database di monitoraggio.

Passaggi successivi

Lezione 5: rilevamento del flusso di lavoro con Windows PowerShell

Vedere anche

Concetti

Lezione 1: introduzione ai cmdlet di 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
Lezione 5: rilevamento del flusso di lavoro con Windows PowerShell

  2012-03-05