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:
Aplikace Order Service musí být nasazena podle pokynů v části Lekce 2: Nasazení aplikace Objednávková služba pomocí prostředí Windows PowerShell.
Musí být dokončeny kroky z části Lekce 3: Konfigurace objednávkové služby v prostředí Windows PowerShell.
K porozumění všem částem této lekce je třeba alespoň základní znalost systému SQL Server.
Postup
V této lekci provedete následující kroky:
Vytvoření nového vlastního sledovacího profilu k vyjádření konfigurací provedených pomocí prostředí Windows PowerShell
Vytvoření sestavy aktuální konfigurace sledování pomocí prostředí Windows PowerShell
Použití prostředí Windows PowerShell ke konfiguraci služby OrderWorkflowService tak, aby používala nový vlastní sledovací profil
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.
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.
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.
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.
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 :
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.
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
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
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 :
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í.
V prostředí Windows PowerShell zadejte následující příkaz.
Notepad .\Utility.ps1
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í.
Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit uložte změny v souboru Utility.ps1.
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í
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.
Jako hodnotu Množství zadejte číslo 88.
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.
Vyčkejte přibližně 30 sekund na dokončení záznamu údajů sledování.
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