Compartir vía


Lección 4: Seguimiento de Order Services 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 Windows Server AppFabric para Windows PowerShell.

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

Procedimiento

En esta lección realizará los siguientes ejercicios:

  1. Notificación de la información de seguimiento con Windows PowerShell.

  2. Control de instancias de flujo de trabajo con Windows PowerShell.

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

  1. 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 Order Service con Windows PowerShell. Copie el siguiente comando en Windows PowerShell para ejecutar OrderClient.

    C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug\OrderClient.exe
    
  2. Haga clic en Enviar en el formulario de pedido de Contoso.com. Antes de continuar, compruebe que en la sección de estado de la parte inferior del formulario aparece el mensaje El pedido se ha recibido. A continuación, se ejecutará una instancia de OrderWorkflowService que simulará el procesamiento de un pedido.

  3. Tome nota del tiempo para poder generar una referencia cruzada respecto al tiempo de creación de una instancia de flujo de trabajo.

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

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

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

  1. 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
    
  2. Haga clic en Enviar en el formulario de pedido de Contoso.com. Antes de continuar, compruebe que en la sección de estado de la parte inferior del formulario aparece el mensaje El pedido se ha recibido. A continuación, se ejecutará una instancia de OrderWorkflowService que simulará el procesamiento de un pedido.

  3. Tome nota del tiempo para poder generar una referencia cruzada respecto al tiempo de creación de una instancia de flujo de trabajo.

  4. 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
    
  5. 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 :
    
  6. 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.

  7. Una vez seleccionado todo el GUID, haga clic con el botón secundario dentro del GUID resaltado para copiarlo en el Portapapeles.

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

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

  10. 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 3: Configuración de Order Service 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.

  1. En Windows PowerShell, escriba el siguiente comando para abrir el archivo del script Utility.ps1.

    Notepad .\Utility.ps1
    
  2. 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.

  3. Cierre el Bloc de notas y haga clic en Guardar para guardar los cambios de Utility.ps1.

  4. 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
    
  5. 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
    
  6. 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 Windows Server AppFabric para Windows PowerShell
Lección 2: Implementación de la aplicación Order Service con Windows PowerShell
Lección 3: Configuración de Order Service con Windows PowerShell
Lección 5: Seguimiento del flujo de trabajo con Windows PowerShell

  2011-12-05