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:
- Před zahájením této lekce musí být dokončeny kroky z tématu Lekce 3: Konfigurace objednávkové služby v prostředí Windows PowerShell.
Postup
V této lekci provedete následující cvičení:
Hlášení informací o monitorování pomocí prostředí Windows PowerShell
Řízení instance pracovního postupu pomocí prostředí Windows PowerShell
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
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
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.
Poznamenejte si čas pro vzájemnou referenci s dobou vytvoření instance pracovního postupu.
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.
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.
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.
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
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.
Poznamenejte si čas pro vzájemnou referenci s dobou vytvoření instance pracovního postupu.
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
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 :
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.
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.
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.
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.
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.
V prostředí Windows PowerShell otevřete zadáním následujícího příkazu soubor skriptu Utility.ps1.
Notepad .\Utility.ps1
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.
Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit uložte změny v souboru Utility.ps1.
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
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
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