Sdílet prostřednictvím


Lekce 4: Monitorování objednávkové služby v prostředí Windows PowerShell

**Čas do dokončení:**25 minut

Cíl: Naučit se monitorovat data v reálném čase a historická data pomocí rutin Windows Server AppFabric pro prostředí Windows PowerShell.

Účel: Účelem této lekce je pomoci vám seznámit se s informacemi o instancích hlášených pomocí rutin technologie AppFabric pro prostředí Windows PowerShell a naučit vás používat tyto informace k řízení instancí.

Požadavky

Před zahájením této lekce musí být splněny následující požadavky:

Postup

V této lekci provedete následující cvičení:

  1. Hlášení informací o monitorování pomocí prostředí Windows PowerShell

  2. Řízení instance pracovního postupu pomocí prostředí Windows PowerShell

  3. Prostředí Windows PowerShell slouží k sledování událostí pracovního postupu z databáze monitorování AppFabric.

Hlášení informací o monitorování pomocí prostředí Windows PowerShell

Hlášení instancí pracovního postupu pro službu OrderWorkflowService nasazenou s aplikací objednávkové služby

  1. Spusťte program OrderClient.exe z adresáře C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug. Tento soubor byl vytvořen v tématu Lekce 2: Nasazení aplikace Objednávková služba pomocí prostředí Windows PowerShell. Chcete-li spustit aplikaci OrderClient, zkopírujte do prostředí Windows PowerShell následující příkaz.

    C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
    
  2. Ve formuláři Contoso.com Order Form (Objednávkový formulář Contoso.com) klikněte na tlačítko Submit (Odeslat). Zkontrolujte, že se ve stavové části dole ve formuláři zobrazí informace Your order has been received (Vaše objednávka byla přijata). Teprve potom pokračujte. Poté, co se ve formuláři zobrazí tyto informace, spustí se instance aplikace OrderWorkflowService simulující zpracování objednávky.

  3. Poznamenejte si čas pro vzájemnou referenci s dobou vytvoření instance pracovního postupu.

  4. Chcete-li hlásit instance pracovního postupu služby OrderWorkflowService pomocí rutin AppFabric, spusťte v prostředí Windows PowerShell následující příkaz.

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

    Tento příkaz získá všechny instance služby OrderWorkflowService v databázi OrderService_PS. Instance jsou předávány do rutiny Format-List pomocí aliasu fl, aby hlásily jen požadované vlastnosti pracovního postupu.

  5. Ověřte, že váš příkaz generoval seznam instancí pracovního postupu, který bude vypadat podobně jako následující seznam.

    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 :
    

    Tyto informace můžete použít k monitorování instancí pro informace o stavu a výjimkách.

  6. Vyhledejte instanci s dobou vytvoření, kterou jste si poznamenali v kroku 3.

Ovládání instancí pracovního postupu pomocí prostředí Windows PowerShell

V této části pozastavíte, obnovíte a ukončíte instanci pracovního postupu.

  1. Znovu spusťte program OrderClient.exe a zkontrolujte, že je instance v běhu. Aplikaci OrderClient spustíte v prostředí Windows PowerShell pomocí následujícího příkazu.

    C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
    
  2. Ve formuláři Contoso.com Order Form (Objednávkový formulář Contoso.com) klikněte na tlačítko Submit (Odeslat). Zkontrolujte, že se ve stavové části dole ve formuláři zobrazí informace Your order has been received (Vaše objednávka byla přijata). Teprve potom pokračujte. Poté, co se ve formuláři zobrazí tyto informace, spustí se instance aplikace OrderWorkflowService simulující zpracování objednávky.

  3. Poznamenejte si čas pro vzájemnou referenci s dobou vytvoření instance pracovního postupu.

  4. Chcete-li hlásit instance pracovního postupu služby OrderWorkflowService pomocí rutin AppFabric, spusťte v prostředí Windows PowerShell následující příkaz.

    Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" –Status Running | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
    
  5. Ověřte, že váš příkaz generoval seznam instancí pracovního postupu, který bude vypadat podobně jako následující seznam.

    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. Najděte instanci s dobou vytvoření, kterou jste si poznamenali v kroku 3. Stisknutím levého tlačítka myši a přetažením ukazatele myši přes hodnotu GUID zvýrazněte hodnotu GUID, která se zobrazí pro InstanceId.

  7. Když je zvýrazněna celá hodnota GUID, klikněte pravým tlačítkem myši dovnitř do zvýrazněné hodnoty GUID, a zkopírujte ji tak do schránky.

  8. Jestliže chcete pozastavit spuštěnou instanci pracovního postupu identifikovanou identifikátorem InstanceId ve vaší schránce, spusťte následující příkaz, ve kterém nahradíte InstanceID za identifikátor GUID.

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

    Tento příkaz dostane instanci pracovního postupu identifikovanou identifikátorem InstanceId a předá ji do rutiny Suspend-ASAppServiceInstance k pozastavení pracovního postupu.

  9. Pracovní postup obnovíte spuštěním následujícího příkazu a nahrazením identifikátoru GUID identifikátorem InstanceId, jak vidíte v následující části.

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

    Tento příkaz dostane instanci pracovního postupu identifikovanou identifikátorem InstanceId a předá ji do rutiny Resume-ASAppServiceInstance k obnovení pozastaveného pracovního postupu.

  10. Pracovní postup obnovíte spuštěním následujícího příkazu a nahrazením identifikátoru GUID identifikátorem InstanceId, jak vidíte v následující části.

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

    Tento příkaz dostane instanci pracovního postupu identifikovanou identifikátorem InstanceId a předá ji do rutiny Stop-ASAppServiceInstance k zastavení a ukončení pracovního postupu.

Zobrazení sledovaných událostí pracovního postupu pomocí prostředí Windows PowerShell

Na základě úrovně monitorování a profilu sledování konfigurovaného pro pracovní postup můžete sledovat mnoho datových bodů v pracovním postupu. Úroveň monitorování jste nastavili na úroveň HealthMonitoring pomocí rutiny Set-ASAppMonitoring popsané v tématu Lekce 3: Konfigurace objednávkové služby v prostředí Windows PowerShell. V této části vygenerujete sestavu událostí pracovního postupu pro vaši instanci. Když budete chtít tyto informace oznámit, použijete znovu funkci skriptu, kterou jste přidali k modulu skriptu Utility.ps1.

  1. V prostředí Windows PowerShell otevřete zadáním následujícího příkazu soubor skriptu Utility.ps1.

    Notepad .\Utility.ps1
    
  2. Zkopírujte a vložte následující funkci skriptu do programu Poznámkový blok v dolní části skriptu 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
    }
    

    Tento kód skriptu zajistí, že součásti nutné pro použití rutin SQL Server budou načteny do relace prostředí Windows PowerShell. Bude také přidána funkce nástroje nazvaná GetWFEvents. Tato funkce umožňuje dotazy na databázi monitorování a načítání informací o událostech pracovního postupu ze zobrazení Wfevents. Dotaz SQL, který používá tato funkce, provádí vnitřní spojení se zobrazením EventSources pro identifikaci pracovního postupu spojeného s událostmi.

  3. Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit uložte změny v souboru Utility.ps1.

  4. V prostředí Windows PowerShell spusťte následující příkaz, a importujte tak nové změny v souboru Utility.ps1 do vaší relace prostředí Windows PowerShell.

    Import-Module .\Utility.ps1
    
  5. Do prostředí Windows PowerShell zadejte následující příkaz, aby byl nový skript použit k dotazu na události pracovního postupu zaznamenané v databázi monitorování pro vaši instanci pracovního postupu. Nezapomeňte nahradit ID instance za identifikátor GUID, jak je znázorněno dále.

    GetWFEvents 95a25419-0d71-42c4-ab70-aa523ba603fc OrderService_PS
    
  6. Výstup v prostředí Windows PowerShell by měl být seznam událostí podobný následujícímu seznamu.

    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          :
    

Události hlášené v tomto kroku poskytují informace o stavu činností a operací v pracovním postupu. Tyto informace jsou užitečné ke sledování průběhu pracovního postupu během doby spuštění.

Další informace o dotazech na databázi monitorování naleznete v tématu Zobrazení a tabulky databáze monitorování.

Můžete se také podívat na ukázku skriptu v části Dotazy na databázi monitorování SQL pomocí prostředí Windows PowerShell. Další informace naleznete v tématu Ukázky.

Rekapitulace

V této lekci jste se naučili hlásit informace pracovního postupu monitorované technologií AppFabric a identifikovat instanci. Naučili jste se také, jak použít pozastavení, obnovení a ukončení řídicích operací u instancí. Nakonec jste použili novou funkci skriptu přidanou k modulu skriptu Utility.ps1 k hlášení událostí pracovního postupu z databáze monitorování.

Další kroky

Lekce 5: Sledování pracovního postupu v prostředí Windows PowerShell

Další odkazy

Koncepty

Lekce 1: Začínáme s rutinami technologie Windows Server AppFabric pro prostředí Windows PowerShell
Lekce 2: Nasazení aplikace Objednávková služba pomocí prostředí Windows PowerShell
Lekce 3: Konfigurace objednávkové služby v prostředí Windows PowerShell
Lekce 5: Sledování pracovního postupu v prostředí Windows PowerShell

  2011-12-05