Lección 4: Seguimiento de Order Service con Windows PowerShell
Tiempo de realización: 25 minutos
Objetivo: aprender a realizar el seguimiento de datos históricos y en tiempo real con los cmdlets de Microsoft AppFabric 1.1 para Windows Server para Windows PowerShell.
Propósito: la finalidad de esta lección es ayudarle a familiarizarse con la información de instancias notificada mediante cmdlets de AppFabric para Windows PowerShell y a usar esta información para controlar las instancias.
Requisitos previos
Tenga en cuenta los siguientes requisitos previos antes de comenzar esta lección:
- Antes de empezar la lección, es necesario completar la Lección 3: Configuración de Order Service con Windows PowerShell.
Procedimiento
En esta lección realizará los siguientes ejercicios:
Notificación de la información de seguimiento con Windows PowerShell
Control de instancias de flujo de trabajo con Windows PowerShell
Uso de Windows PowerShell para ver eventos de flujo de trabajo supervisados de la base de datos de AppFabric
Notificación de la información de seguimiento con Windows PowerShell
Procedimiento para notificar instancias de WF de OrderWorkflowService implementadas con la aplicación del servicio de pedidos
Ejecute OrderClient.exe desde el directorio C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug. Este archivo se creó en la Lección 2: Implementación de la aplicación OrderService con Windows PowerShell. Copie el siguiente comando en Windows PowerShell para ejecutar OrderClient.
C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
En Formulario de pedido de Contoso.com, haga clic en Enviar. Antes de continuar, compruebe que la sección de estado que se encuentra en la parte inferior del formulario indica El pedido se ha recibido. A continuación, se ejecutará una instancia de OrderWorkflowService que simulará el procesamiento de un pedido.
Tome nota del tiempo para poder generar una referencia cruzada respecto al tiempo de creación de una instancia de flujo de trabajo.
Para notificar instancias de flujo de trabajo de OrderWorkflowService mediante cmdlets de AppFabric, ejecute el siguiente comando en Windows PowerShell.
Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
Este comando obtiene todas las instancias de OrderWorkflowService de la base de datos OrderService_PS. Las instancias se canalizan en el cmdlet Format-List mediante su alias fl y se notifican únicamente las propiedades de flujo de trabajo deseadas.
Compruebe que el comando genera una lista de instancias de flujo de trabajo similar a la siguiente.
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 :
Use esta información para realizar el seguimiento del estado y la información de excepción de las instancias.
Busque una instancia con el valor de CreationTime que anotó en el paso 3.
Control de instancias de flujo de trabajo con Windows PowerShell
En esta sección suspenderá, reanudará y detendrá una instancia de flujo de trabajo.
Ejecute OrderClient.exe de nuevo para asegurarse de que tiene una instancia en estado de ejecución. El siguiente comando de Windows PowerShell ejecuta OrderClient.
C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
En Formulario de pedido de Contoso.com, haga clic en Enviar. Antes de continuar, compruebe que la sección de estado que se encuentra en la parte inferior del formulario indica El pedido se ha recibido. A continuación, se ejecutará una instancia de OrderWorkflowService que simulará el procesamiento de un pedido.
Tome nota del tiempo para poder generar una referencia cruzada respecto al tiempo de creación de una instancia de flujo de trabajo.
Para notificar instancias de flujo de trabajo de OrderWorkflowService mediante cmdlets de AppFabric, ejecute el siguiente comando en Windows PowerShell.
Get-ASAppServiceInstance -SiteName "OrderService_PS" -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" –Status Running | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage
Compruebe que el comando genera una lista de instancias de flujo de trabajo similar a la siguiente.
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 :
Busque una instancia con el valor de CreatedTime que anotó en el paso 3. Seleccione el valor de GUID que se muestra para InstanceId arrastrando el mouse encima del GUID con el botón principal del mouse presionado.
Una vez seleccionado todo el GUID, haga clic con el botón secundario dentro del GUID resaltado para copiarlo en el Portapapeles.
Para suspender la instancia de flujo de trabajo en ejecución identificada mediante InstanceId en el Portapapeles, ejecute el siguiente comando sustituyendo InstanceId por el GUID que se muestra a continuación.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Suspend-ASAppServiceInstance
Este comando obtiene la instancia de flujo de trabajo identificada mediante InstanceId y la canaliza en el cmdlet Suspend-ASAppServiceInstance para suspender el flujo de trabajo.
Para reanudar el flujo de trabajo, ejecute el siguiente comando sustituyendo InstanceId por el GUID que se muestra a continuación.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Resume-ASAppServiceInstance
Este comando obtiene la instancia de flujo de trabajo identificada mediante InstanceId y la canaliza en el cmdlet Resume-ASAppServiceInstance para reanudar el flujo de trabajo suspendido.
Para detener y finalizar la instancia, ejecute el siguiente comando sustituyendo InstanceId por el GUID que se muestra a continuación.
Get-ASAppServiceInstance -InstanceId 95a25419-0d71-42c4-ab70-aa523ba603fc | Stop-ASAppServiceInstance -Terminate
Este comando obtiene la instancia de flujo de trabajo identificada mediante InstanceId y la canaliza en el cmdlet Stop-ASAppServiceInstance para detener y finalizar el flujo de trabajo.
Vista de eventos de WF supervisados con Windows PowerShell
En función del nivel y el perfil de seguimiento configurados para un flujo de trabajo, puede supervisar varios puntos de datos de un flujo de trabajo. Defina el nivel de seguimiento en HealthMonitoring mediante el cmdlet Set-ASAppMonitoring de la Lección 2: Implementación de la aplicación OrderService con Windows PowerShell. En esta sección, generará un informe de los eventos de WF supervisados para la instancia. Para notificar esta información, volverá a usar una función de script que agregará al módulo del script Utility.ps1.
En Windows PowerShell, escriba el siguiente comando para abrir el archivo del script Utility.ps1.
Notepad .\Utility.ps1
Copie y pegue la siguiente función de script en el Bloc de notas al final del 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 }
Este código de script garantiza que se cargan los componentes necesarios para usar los cmdlets SQL Server en la sesión de Windows PowerShell. También agrega una función de utilidad denominada GetWFEvents. Dicha función permite consultar la base de datos de seguimiento y recuperar información de eventos de flujo de trabajo de la vista Wfevents. La consulta SQL que usa la función crea una combinación interna con la vista EventSources para identificar el flujo de trabajo asociado a los eventos.
Cierre el Bloc de notas y haga clic en Guardar para guardar los cambios realizados en Utility.ps1.
En Windows PowerShell, ejecute el siguiente comando para importar los nuevos cambios de Utility.ps1 en la sesión de Windows PowerShell.
Import-Module .\Utility.ps1
Escriba el siguiente comando en Windows PowerShell para usar la nueva función de script para consultar los eventos de flujo de trabajo registrados en la base de datos de seguimiento de la instancia de flujo de trabajo. Asegúrese de sustituir el identificador de instancia por el GUID que se muestra a continuación.
GetWFEvents 95a25419-0d71-42c4-ab70-aa523ba603fc OrderService_PS
El resultado en Windows PowerShell debe ser una lista de eventos similar a la que se muestra a continuación.
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 :
Los eventos notificados en este paso ofrecen información sobre el estado de las actividades y las operaciones del flujo de trabajo. Esta información resulta útil para realizar un seguimiento del progreso de un flujo de trabajo durante el tiempo de ejecución.
Para obtener más información acerca de la consulta de la base de datos de seguimiento, vea Vistas y tablas de la base de datos de seguimiento.
También puede revisar el ejemplo de script Consultas en la base de datos de seguimiento SQL mediante Windows PowerShell. Para obtener más información, vea Ejemplos.
¿Qué acabo de hacer?
En esta lección, ha aprendido a notificar la información de flujo de trabajo que supervisa AppFabric y a identificar una instancia. También ha aprendido a aplicar las operaciones de control de suspensión, reanudación y detención a las instancias. Finalmente, ha usado una nueva función de script agregada al módulo del script Utility.ps1 para notificar los eventos de flujo de trabajo de la base de datos de seguimiento.
Pasos siguientes
Lección 5: Seguimiento del flujo de trabajo con Windows PowerShell
Vea también
Conceptos
Lección 1: Introducción a los cmdlets de AppFabric para Windows PowerShell
Lección 2: Implementación de la aplicación OrderService con Windows PowerShell
Lección 3: Configuración de Order Service con Windows PowerShell
Lección 4: Seguimiento de Order Service con Windows PowerShell
Lección 5: Seguimiento del flujo de trabajo con Windows PowerShell
2012-03-05