Sdílet prostřednictvím


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

Čas do dokončení: 25 minut

Cíl: Dozvíte se, jak pomocí prostředí Windows PowerShell konfigurovat sledovací profil pro monitorování proměnných definovaných v pracovním postupu.

Účel: Účelem této lekce je seznámit vás s tím, jak lze pomocí rutin technologie Windows Server AppFabric konfigurovat vlastní sledovací profil objednávkové služby. Poté pomocí funkce skriptu vytvoříte sestavu s údaji vlastního sledování z úložiště monitorování.

Předpoklady

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í kroky:

  1. Vytvoření nového vlastního sledovacího profilu k vyjádření konfigurací provedených pomocí prostředí Windows PowerShell

  2. Vytvoření sestavy aktuální konfigurace sledování pomocí prostředí Windows PowerShell

  3. Použití prostředí Windows PowerShell ke konfiguraci služby OrderWorkflowService tak, aby používala nový vlastní sledovací profil

  4. Vytvoření sestavy s údaji vlastního sledování z úložiště monitorování pomocí prostředí Windows PowerShell

Vytvoření nového vlastního sledovacího profilu

V této části vytvoříte nový vlastní sledovací profil, který je vlastně kopií profilu použitého v části Lekce 5: Obnovení pozastaveného pracovního postupu pomocí technologie AppFabric v Kurz využívající rozhraní technologie Windows Server AppFabric. Tento nový sledovací profil bude na konci názvu obsahovat příponu „_PS“, což umožní profil přiřadit ke konfiguracím pomocí rutin technologie AppFabric.

  1. V prostředí Windows PowerShell zadejte následující příkaz.

    Notepad OrderService_PS.tp
    

    Kliknutím na tlačítko Ano potvrďte vytvoření nového souboru v programu Poznámkový blok.

  2. Zkopírujte následující elementy XML a vložte do programu Poznámkový blok.

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

    Tento sledovací profil umožní sledování proměnných pracovního postupu product a quantity v aktivitě Čekání na objednávku v souboru OrderWorkflow.xamlx.

  3. Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit potvrďte uložení změn v souboru OrderService_PS.tp.

Vytvoření sestavy konfigurace sledování z prostředí Windows PowerShell

V této části použijete rutiny technologie AppFabric pro prostředí Windows PowerShell k zobrazení aktuální konfigurace sledování pro službu OrderWorkflowService.

  1. Spuštěním následujícího příkazu v prostředí Windows PowerShell zobrazte, zda je pro službu OrderWorkflowService zapnuto sledování.

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

    Výsledek by měl vypadat následovně:

    IsTrackingEnabled : True
    ProfileName       : HealthMonitoring Tracking Profile
    IsLocal           : True
    BehaviorName      :
    
  2. Spuštěním následujícího příkazu v prostředí Windows PowerShell zobrazte dostupné sledovací profily pro službu OrderWorkflowService.

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

    Výsledek by měl vypadat přibližně jako v následujícím výstupu, kde jsou zobrazeny aktuálně dostupné sledovací profily pro službu OrderWorkflowService.

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

Konfigurace vlastního sledování pomocí prostředí Windows PowerShell

V této části použijete rutiny technologie AppFabric pro prostředí Windows PowerShell ke konfiguraci služby OrderWorkflowService tak, aby používala nový vlastní sledovací profil.

  1. Spuštěním následujícího příkazu přidejte profil OrderService_PS.tp do seznamu dostupných sledovacích profilů pro službu OrderWorkflowService.

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

    Aby byl tento příkaz úspěšně proveden, musí se soubor OrderService_PS.tp nacházet v aktuálním adresáři prostředí Windows PowerShell.

    Výsledek po přidání sledovacího profilu by měl vypadat následovně:

    Name        : CustomOrderServiceProfile - Windows PowerShell Config
    SiteName    : OrderService_PS
    VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx
    IsLocal     : True
    
  2. Spuštěním následujícího příkazu v prostředí Windows PowerShell zobrazte nový seznam dostupných sledovacích profilů pro službu OrderWorkflowService.

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

    Výsledek by měl vypadat jako v následujícím příkladu, který obsahuje profil s názvem 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. Chcete-li nakonfigurovat službu OrderWorkflowService tak, aby používala nový profil s názvem CustomOrderServiceProfile - Windows PowerShell Config, spusťte v prostředí Windows PowerShell následující příkaz.

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

    Výsledek by měl vypadat následovně:

    IsTrackingEnabled : True
    ProfileName       : CustomOrderServiceProfile - Windows PowerShell Config
    IsLocal           : True
    BehaviorName      :
    
  4. Spuštěním následujícího příkazu v prostředí Windows PowerShell zobrazte novou konfiguraci sledování služby OrderWorkflowService.

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

    Konfigurace sledování by se měla vypsat následujícím způsobem:

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

Použití prostředí Windows PowerShell k vytvoření sestavy vlastních dat sledování

V této části použijete funkci skriptu k vytvoření sestavy událostí pracovních postupů pro sledované proměnné pracovního postupu nakonfigurované v předchozí části. K vytvoření sestavy nových údajů sledování je nutné spustit novou instanci pracovního postupu a generovat data sledování s použitím nové konfigurace sledování.

Přidání nové funkce skriptu pro vytvoření sestavy údajů sledování

Pomocí následujících kroků přidejte do souboru skriptu Utility.ps1 novou funkci skriptu, která vytvoří sestavu údajů vlastního sledování.

  1. V prostředí Windows PowerShell zadejte následující příkaz.

    Notepad .\Utility.ps1
    
  2. Zkopírujte následující kód skriptu a v programu Poznámkový blok jej vložte do dolní části souboru Utility.ps1.

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

    Tato nová funkce GetTrackedWFVariableEvents je pouze mírně upravená funkce GetWFEvents. Přidá další INNER JOIN se zobrazením WfEventProperties pro vytvoření sestavy názvů a hodnot sledovaných proměnných. Funkce také filtruje dotaz SQL podle názvu pracovního postupu a názvu sledované proměnné namísto filtrování podle hodnoty InstanceId. To umožňuje identifikovat instanci pracovního postupu podle hodnoty Quantity zadané při zadání objednávky. Ve skutečnosti by ID objednávky mělo být zveřejněno z důvodu sledování.

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

  4. Zadáním následujícího příkazu v prostředí Windows PowerShell naimportujte nové změny do souboru Utility.ps1 aktuální relace prostředí Windows PowerShell.

    Import-Module .\Utility.ps1
    

Generování a výpis nových dat sledování

  1. Spusťte program OrderClient.exe. Tento program by se měl nacházet ve složce C:\DublinTutorial\OrderClient, jak je popsáno v části Lekce 1: Začínáme v Kurz využívající rozhraní technologie Windows Server AppFabric.

  2. Jako hodnotu Množství zadejte číslo 88.

  3. 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 formulář zobrazí následující text, spustí se nová instance pracovního postupu objednávky, která simuluje zpracování objednávky.

  4. Vyčkejte přibližně 30 sekund na dokončení záznamu údajů sledování.

  5. Zadáním následujícího příkazu v okně prostředí Windows PowerShell vytvořte sestavu údajů sledování.

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

    Výsledná sestava by měla vypadat následovně: Všimněte si položek TrackedVariableName a TrackedVariableValue, které byly sledovány u instance pracovního postupu.

    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
    

Co jste se právě naučili?

V této lekci jste vytvořili nový sledovací profil a použili rutiny technologie AppFabric pro prostředí Windows PowerShell ke konfiguraci služby OrderWorkflowService tak, aby používala nový profil. Poté jste generovali údaje sledování vytvořením nové instance pracovního postupu a vytvořili sestavu dat sledování pomocí vlastní funkce skriptu 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 4: Monitorování objednávkové služby v prostředí Windows PowerShell

  2011-12-05