Seguimiento de asignaciones de eventos de base de datos
En este tema se incluye la asignación de los campos de la tabla de ensayo de la base de datos de seguimiento en las vistas de eventos para cada uno de los tipos de eventos emitidos por el tiempo de ejecución Windows Workflow Foundation (WF). Esta información es necesaria al configurar una base de datos de seguimiento que no es de SQL para su uso con Microsoft AppFabric 1.1 para Windows Server. Al usar SQL Server, todas las vistas y la tabla de ensayo se crean mediante el proceso de configuración de AppFabric. No obstante, en una implementación de base de datos que no es de SQL, es necesario crear manualmente estas vistas y la tabla de ensayo. Cuando se produce un evento en un servicio WCF o WF administrado por AppFabric, Servicio de recopilación de eventos escribe una fila correspondiente a dicho evento en la tabla ASStagingTable en la base de datos de seguimiento. Es necesario asignar los datos en la vista correspondiente de modo que puedan mostrarse mediante el Panel de AppFabric. Esta asignación puede tener lugar usando el mecanismo que se elija para recibir los datos de la tabla de ensayo en cualquier tabla que admita las vistas de seguimiento. Por ejemplo, puede usar un desencadenador de base de datos o un trabajo.
Este documento sólo contiene algunos eventos y asignaciones de vistas. Para obtener un conjunto completo de eventos y sus asignaciones asociadas, descargue las Asignaciones de eventos de base de datos de AppFabric. Para obtener más información sobre este proceso de asignación, vea Cómo Uso de una base de datos de seguimiento que no sea de SQL Server y Vistas y tablas de la base de datos de seguimiento.
Asignación común para todos los eventos
Tabla ASStagingTable
Cada evento rellenará los campos siguientes de la tabla ASStagingTable.
Columnas de ASStagingTable | Datos del evento |
---|---|
EventTypeId |
Identificador del evento emitido |
E2EActivityId |
Identificador de actividad de extremo a extremo emitido con este evento. |
Computer |
Nombre del equipo en el que se emite el evento. |
EventSource |
Ruta de acceso virtual para este evento. |
ProcessId |
Identificador del proceso. |
TraceLevelId |
Nivel de seguimiento para el evento emitido. |
TimeCreated |
Hora de creación de este evento. |
Vista ASEventSources
Casi todos los eventos rellenarán la vista ASEventSources (a excepción del evento con el identificador 499).
Nombre de columna | Origen de los datos |
---|---|
ID |
Identificador para el origen del evento. Otras vistas lo usan para obtener los detalles del origen del evento. |
Name |
Nombre del servicio extraído de la columna EventSource de ASStagingTable |
Computer |
Asignado al equipo de ASStagingTable. |
Site |
Nombre del sitio extraído de la columna EventSource de ASStagingTable |
VirtualPath |
Nombre de la ruta de acceso virtual completa extraído de la columna EventSource de ASStagingTable |
ApplicationVirtualPath |
Nombre de la ruta de acceso virtual a la aplicación extraído de la columna EventSource de ASStagingTable |
ServiceVirtualPath |
Nombre de la ruta de acceso virtual al servicio extraído de la columna EventSource de ASStagingTable |
Vista ASEvents
Casi todos los eventos rellenarán la vista ASEvents (a excepción del evento con el identificador 499).
Nombre de columna | Origen de los datos |
---|---|
EventTypeId |
EventTypeId asignado a ASStagingTable.EventTypeId |
EventName |
Nombre del evento |
EventVersion |
Versión del evento. Actualmente 0. |
EventSourceID |
Asignado al identificador para el origen de eventos en las vistas ASEventSources |
ProcessId |
Asignado a ASStagingTable.ProcessId |
TraceLevelId |
Asignado a ASStagingTable.TraceLevelID |
TraceLevel |
Representación en forma de cadena de TraceLevelId |
E2EActivityId |
Asignado a ASStagingTable.E2EActivityId |
TimeCreated |
Asignado a ASStagingTable.TimeCreated |
Eventos
A continuación se indican algunas de las asignaciones de eventos para implementar una base de datos de seguimiento.
Identificador de evento 100
Además de las columnas comunes, el Servicio de recopilación de eventos rellena las columnas siguientes en la tabla ASStagingTable para el identificador de evento 100.
Datos del evento | Columnas de ASStagingTable |
---|---|
TypeName |
Data1UniqueId |
RecordNumber |
Data1BigInt |
ActivityRootId |
Data3Str |
State |
Data2Str |
Nombre de perfil de seguimiento |
Data1Str |
Annotations |
CustomAnnotations |
Los datos del evento 100 rellenan las vistas siguientes: ASEventSources, ASWfEvents, ASEvents, ASWfTrackingProfiles y ASWfEventAnnotations. La asignación de datos de ASStagingTable a las vistas comunes ASEventSources y ASEvents se especifica en las asignaciones comunes.
Vista: ASWfEventAnnotations
Esta vista se actualiza con anotaciones que se emiten con eventos de seguimiento de WF desde los servicios de WF.
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo para esta fila de evento |
AnnotationSetId |
Clave para encontrar el evento de WF que emitió la anotación |
Name |
Nombre de la anotación obtenido de ASStagingTable.CustomAnnotations |
Value |
Valor de la anotación obtenido de ASStagingTable.CustomAnnotations |
Extracción del nombre y el valor de anotaciones de ASStagingTable.CustomAnnotations
Las anotaciones se almacenan de la manera siguiente. Las anotaciones se emiten con este evento. Los valores de anotaciones se almacenan en este formato.
< items >
< item name = "annotationName" type="System.String">annotationValue</item>
</items >
Si no se especifican anotaciones, la cadena contiene </items>. Los elementos name
y value
se extraen mediante el análisis del valor almacenado en la columna ASStagingTable.CustomAnnotations.
Vista ASWfTrackingProfiles
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo para el perfil de seguimiento |
Name |
Asignado a ASStagingTable-> Columna ASStagingTable.Data1Str |
Vista ASWfEvents
Únicamente se especifican las columnas rellenadas para este evento en esta vista. Todas las demás columnas tienen el valor NULL. El valor rellenado específicamente por el evento se indica en negrita. Esta vista se crea en los eventos de seguimiento emitidos para instancias de WF.
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo generado |
EventTypeId |
100 (asignado a: ASStagingTable-> Columna EventTypeId) |
EventType |
“WorkflowInstanceRecord” |
EventVersion |
0 |
EventSourceId |
Identificador en la vista ASEventSources |
ProcessId |
Asignado a ASStagingTable-> Columna: ASStagingTable.ProcessId |
WorkflowInstanceId |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1UniqueId |
TrackingProfileId |
Identificador exclusivo del perfil de seguimiento asignado a la columna del identificador en la vista ASWftTrackingProfiles. Tanto este identificador como ASWfTrackingProfiles se actualizan en una única transacción. |
E2EActivityId |
Asignado a ASStagingTable-> Columna: ASStagingTable.E2EActivityId |
TraceLevelId |
Asignado a ASStagingTable-> Columna: ASStagingTable.TraceLevelId |
TraceLevel |
Dependiente de TraceLevelId: 0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose” |
RecordNumber |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1BigInt |
AnnotationSetId |
Identificador exclusivo del conjunto de anotaciones asignadas a la columna AnnotationSetId en la vista ASWfEventAnnotations. Tanto este identificador como ASWfEventAnnotations se actualizan en una única transacción. |
TimeCreated |
Asignado a ASStagingTable-> Columna: ASStagingTable.TimeCreated |
ActivityRootId |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data3Str |
State |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data2Str |
Vista: ASWfInstances
Esta vista se actualiza con el estado de instancia para el flujo de trabajo activo. Esta vista se actualiza después de la vista ASWfEvents pero dentro de la misma transacción. Cuando se agrega un evento a la vista ASWfEvents, ésta se debe actualizar simultáneamente con los valores insertados en la vista ASWfEvents y, por lo tanto, en la misma transacción. Únicamente hay una fila por instancia de flujo de trabajo. Con cada evento que se agrega a la tabla WFEvents, se modifica la fila para la instancia de flujo de trabajo. Una fila se agrega o actualiza en esta tabla únicamente bajo determinadas condiciones. Si state = “Deleted” o “Unloaded” (ASWfEvents.State) para un evento con el identificador 100, la fila no se agrega a esta tabla.
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo para esta entrada |
WorkflowInstanceId |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1UniqueId. Únicamente se agrega una vez para una instancia exclusiva. |
LastEventSourceId |
El último eventSourceID que ha modificado esta fila. Asignado a ASWfEvents.EventSourceId. |
LastEventStatus |
Asignado a la vista ASWfEvents -> Columna: ASWfEvents.State. Únicamente se inserta o actualiza si el estado no es igual a “Deleted” o “Unloaded”. Si state == “Deleted” o “Unloaded” no se agrega una fila a esta tabla. |
StartTime |
Asignado a ASWfEvents-> Columna: ASWfEvents.TimeCreated. Es el valor de TimeCreated del evento con el campo RecordNumber más bajo para esta instancia de trabajo. |
LastModifiedTime |
Asignado a ASWfEvents-> Columna: ASWfEvents.TimeCreated. Se actualiza cuando cambia el estado. Además, tenga en cuenta que para actualizar esta columna, el campo RecordNumber de WorkflowRecord es mayor que el campo RecordNumber anterior que actualizó este valor. (La posible implementación es mantener una tabla temporal que asigne el identificador de instancia de esta tabla al RecordNumber del registro de eventos de flujo de trabajo de ASWfEvents que lo ha modificado. Cuando un nuevo evento intenta actualizar esta fila para esta instancia, compruebe si el RecordNumber es mayor que el último RecordNumber modificado). |
CurrentDuration |
Duración del flujo de trabajo en ejecución (LastModifiedTime – StartTime) |
ExceptionCount |
Número de excepciones que ha encontrado el flujo de trabajo. No actualizado por el identificador de evento 100. |
LastAbortedTime |
No actualizado por el identificador de evento 100. |
Para obtener más información sobre este evento, vea 100 - WorkflowInstanceRecord (https://go.microsoft.com/fwlink/?LinkId=187224) (puede estar en inglés).
Identificador de evento 103
Además de las columnas comunes, el Servicio de recopilación de eventos rellena las columnas siguientes en la tabla ASStagingTable para el identificador de evento 103.
Datos del evento | Columnas de ASStagingTable |
---|---|
workflowinstanceid |
Data1UniqueId |
RecordNumber |
Data1BigInt |
Nombre de perfil de seguimiento |
Data1Str |
State |
Data2Str |
ActivityName |
Data3Str |
ActivityId |
Data4Str |
ActivityInstanceId |
Data5Str |
ActivityTypeName |
Data6Str |
Annotations |
CustomAnnotations |
Variables |
CustomProperties |
Arguments |
CustomArguments |
Los datos del evento 103 rellenan las vistas siguientes: ASEventSources, ASWfEvents, ASEvents, ASWfTrackingProfiles, ASWfEventAnnotations, ASWfEventProperties y ASWfPropertyNames. La asignación de datos de ASStagingTable a las vistas comunes ASEventSources y ASEvents se especifica en las asignaciones comunes.
Vista: ASWfEventAnnotations
Esta vista se actualiza con anotaciones que se emiten con eventos de seguimiento de WF desde los servicios de WF.
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo para esta fila de evento |
AnnotationSetId |
Clave para encontrar el evento de WF que emitió la anotación |
Name |
Nombre de la anotación obtenido de ASStagingTable.CustomAnnotations |
Value |
Valor de la anotación obtenido de ASStagingTable.CustomAnnotations |
Extracción del nombre y el valor de anotaciones de ASStagingTable.CustomAnnotations
Las anotaciones se emiten con este evento. Los valores de las anotaciones se almacenan en el formato siguiente. Si no se especifican anotaciones, la cadena contiene </items>. El nombre y el valor se extraen mediante el análisis del valor almacenado en la columna ASStagingTable.CustomAnnotations.
< items >
< item name = "annotationName" type="System.String">annotationValue</item>
</items >
Vista: ASWfPropertyNames
Esta vista se crea en los nombres de propiedad de seguimiento que se extraen de los servicios de WF. El nombre puede ser un nombre de variable, un nombre de argumento o un nombre dentro de customtrackingrecord.
Nombre de columna | Datos rellenados |
---|---|
EventSourceId |
Origen de eventos para este evento. Hace referencia al identificador en la vista EventSources. |
Name |
Nombre de la propiedad supervisada |
Type |
Tipo de la propiedad supervisada |
Extracción del nombre y el tipo de ASStagingTable.CustomProperties o ASStagingTable CustomArguments
Las variables de flujo de trabajo se almacenan en ASStagingTable.CustomProperties. Para el evento 103, el formato de las variables es el siguiente. Si no se especifican variables, la cadena contiene </items>. Analice la cadena XML para obtener el nombre y el tipo de la variable.
< items >
< item name = "variableName" type="System.String">variableValue</item>
</items >
Los argumentos se almacenan en ASStagingTable.CustomArguments. Para el evento 103, el formato de los argumentos es el siguiente. Analice la cadena XML para obtener el nombre y el tipo del argumento. Si no se especifican argumentos, la cadena contiene </items>.
< items >
< item name = "argumentName" type="System.String">argumentValue</item>
</items >
Vista: ASWfEventProperties
Esta vista tiene una fila por variable, argumento o propiedad personalizada que se extrae del evento de WF.
Nombre de columna | Datos rellenados |
---|---|
EventId |
Se asigna al identificador de eventos de la vista ASWfEvents -> ASWfEvents. Id hace referencia al evento de WF que emitió estos datos. |
Name |
Nombre extraído del análisis de XML de ASStagingTable.CustomArguments o ASStagingTable.CustomProperties |
WfDataSource |
Origen de la propiedad (argumento, variable o datos personalizados). Si los datos se rellenan desde ASStagingTable.CustomArguments el valor es “Argument”. Si los datos se rellenan desde ASStagingTable.CustomProperties el valor es “Variable”. |
Type |
Tipo de la propiedad extraído de CustomArguments del XML de CustomProperties |
Value |
Valor de la propiedad extraído de CustomArguments del XML de CustomProperties cuando el tipo es simple |
ValueBlob |
Valor de la propiedad extraído de CustomArguments del XML de CustomProperties en el caso en que el tipo sea complejo |
TimeCreated |
Marca de tiempo de emisión de la propiedad asignada a ASWfEvents.TimeCreated |
Vista ASWfTrackingProfiles
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo para el perfil de seguimiento |
Name |
Asignado a ASStagingTable-> Columna ASStagingTable.Data1Str |
Vista ASWfEvents
Únicamente se especifican las columnas rellenadas para este evento en esta vista. Todas las demás columnas tienen el valor NULL. El valor rellenado específicamente por el evento se indica en negrita. Esta vista se crea en los eventos de seguimiento emitidos para instancias de WF.
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo generado |
EventTypeId |
103 (asignado a: ASStagingTable-> Columna EventTypeId) |
EventType |
“ActivityStateRecord” |
EventVersion |
0 |
EventSourceId |
Identificador en la vista ASEventSources |
ProcessId |
Asignado a ASStagingTable-> Columna: ASStagingTable.ProcessId |
WorkflowInstanceId |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1UniqueId |
TrackingProfileId |
Identificador exclusivo del perfil de seguimiento asignado a la columna del identificador en la vista ASWftTrackingProfiles. Tanto este identificador como ASWfTrackingProfiles se actualizan en una única transacción. |
E2EActivityId |
Asignado a ASStagingTable-> Columna: ASStagingTable.E2EActivityId |
TraceLevelId |
Asignado a ASStagingTable-> Columna: ASStagingTable.TraceLevelId |
TraceLevel |
Dependiente de TraceLevelId: 0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose” |
RecordNumber |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1BigInt |
AnnotationSetId |
Identificador exclusivo del conjunto de anotaciones asignadas a la columna AnnotationSetId en la vista ASWfEventAnnotations. Tanto este identificador como ASWfEventAnnotations se actualizan en una única transacción. |
TimeCreated |
Asignado a ASStagingTable-> Columna: ASStagingTable.TimeCreated |
ActivityName |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data3Str |
ActivityId |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data4Str |
ActivityInstanceId |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data5Str |
ActivityTypeName |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data6Str |
State |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data2Str |
Vista: ASWfInstances
Esta vista se actualiza con el estado de instancia para el flujo de trabajo activo. Esta vista se actualiza después de la vista ASWfEvents pero dentro de la misma transacción. Cuando se agrega un evento a la vista ASWfEvents, ésta se debe actualizar simultáneamente con los valores insertados en la vista ASWfEvents y, por lo tanto, en la misma transacción. Únicamente hay una fila por instancia de flujo de trabajo. Con cada evento que se agrega a la tabla WFEvents, se modifica la fila para la instancia de flujo de trabajo.
Nombre de columna | Datos rellenados |
---|---|
Id |
Identificador exclusivo para esta entrada |
WorkflowInstanceId |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1UniqueId. Agregado únicamente una vez para una instancia exclusiva. |
LastEventSourceId |
El último eventSourceID que ha modificado esta fila. Asignado a ASWfEvents.EventSourceId. |
LastEventStatus |
Asignado a la vista ASWfEvents -> Columna: ASWfEvents.State. Únicamente se inserta o actualiza si el estado no es igual a “Deleted” o “Unloaded”. Si state == “Deleted” o “Unloaded”, no se agrega una fila a esta tabla. En el caso del evento 101 el valor es “UnhandledException”. |
StartTime |
Asignado a ASWfEvents-> Columna: ASWfEvents.TimeCreated. Es el valor de TimeCreated del evento con el campo RecordNumber más bajo para esta instancia de trabajo representada por ASWfEvents.WorkflowInstanceId. |
LastModifiedTime |
Asignado a ASWfEvents-> Columna: ASWfEvents.TimeCreated. Se actualiza cuando cambia el estado. Además, tenga en cuenta que para actualizar esta columna, el campo RecordNumber de WorkflowRecord es mayor que el campo RecordNumber anterior que actualizó este valor. (La posible implementación es mantener una tabla temporal que asigne el identificador de instancia de esta tabla al RecordNumber del registro de eventos de flujo de trabajo de ASWfEvents que lo ha modificado. Cuando un nuevo evento intenta actualizar esta fila para esta instancia, compruebe si el RecordNumber es mayor que el último RecordNumber modificado). |
CurrentDuration |
Duración del flujo de trabajo en ejecución (LastModifiedTime – StartTime) |
ExceptionCount |
Número de excepciones que ha encontrado el flujo de trabajo. El recuento de eventos 101 que ha encontrado esta instancia de WF representada por el identificador de instancia ASWfEvents. WorkflowInstanceId. |
LastAbortedTime |
Última hora desde la vista ASWfEvents para el evento con el identificador 101 o 102. Para la instancia de flujo de trabajo representada por ASWfEvents.WorkflowInstanceId. |
Para obtener más información sobre este evento, consulte 103 - ActivityStateRecord (https://go.microsoft.com/fwlink/?LinkId=187226) (puede estar en inglés).
Identificador de evento 214
Además de las columnas comunes, el Servicio de recopilación de eventos rellena las columnas siguientes en la tabla ASStagingTable para el identificador de evento 214.
Datos del evento | Columnas de ASStagingTable |
---|---|
MethodName |
Data1Str |
Duration |
Data1Int |
Los datos del evento 214 rellenan las vistas siguientes: ASEventSources, ASWcfEvents y ASEvents. La asignación de datos de ASStagingTable a las vistas comunes ASEventSources y ASEvents se especifica en las asignaciones comunes.
Vista ASWcfEvents
Únicamente se especifican las columnas rellenadas para este evento en esta vista. Todas las demás columnas tienen el valor NULL. El valor rellenado específicamente por el evento se indica en negrita.
ColumnName | Datos rellenados |
---|---|
Id |
Identificador exclusivo generado |
EventTypeId |
214 (asignado a: ASStagingTable-> Columna EventTypeId) |
EventType |
“OperationCompleted” |
EventVersion |
0 |
EventSourceId |
Identificador en la vista ASEventSources |
ProcessId |
Asignado a ASStagingTable-> Columna: ProcessId |
TraceLevelId |
Asignado a ASStagingTable-> Columna: TraceLevelId |
TraceLevel |
Dependiente de TraceLevelId: 0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose” |
E2EActivityId |
Asignado a ASStagingTable-> Columna: ASStagingTable.E2EActivityId |
TimeCreated |
Asignado a ASStagingTable-> Columna: ASStagingTable.TimeCreated |
OperationName |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1Str |
Duration |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1Int |
Para obtener más información sobre este evento, consulte 214 - OperationCompleted (https://go.microsoft.com/fwlink/?LinkId=187225) (puede estar en inglés).
Identificador de evento 219
Además de las columnas comunes, el Servicio de recopilación de eventos rellena las columnas siguientes en la tabla ASStagingTable para el identificador de evento 214.
Datos del evento | Columnas de ASStagingTable |
---|---|
ExceptionTypeName |
Data1Str |
ExceptionToString |
Data1MaxStr |
Los datos del evento 219 rellenan las vistas siguientes: ASEventSources, ASWcfEvents y ASEvents. La asignación de datos de ASStagingTable a las vistas comunes ASEventSources y ASEvents se especifica en las asignaciones comunes.
Vista ASWcfEvents
Únicamente se especifican las columnas rellenadas para este evento en esta vista. Todas las demás columnas tienen el valor NULL. El valor rellenado específicamente por el evento se indica en negrita.
ColumnName | Datos rellenados |
---|---|
Id |
Identificador exclusivo generado |
EventTypeId |
219 (asignado a: ASStagingTable-> Columna ASStagingTable .EventTypeId) |
EventType |
“ServiceException” |
EventVersion |
0 |
EventSourceId |
Identificador en la vista ASEventSources. Esta es la asignación del evento en ASWcfEvents a la vista ASEventSources. |
ProcessId |
Asignado a ASStagingTable-> Columna: ASStagingTable.ProcessId |
TraceLevelId |
Asignado a ASStagingTable-> Columna: ASStagingTable.TraceLevelId |
TraceLevel |
Dependiente de TraceLevelId: 0:”LogAlways”1:”Critical”2:”Error”3:”Warning”4:”Information”5:”Verbose” |
E2EActivityId |
Asignado a ASStagingTable-> Columna: ASStagingTable.E2EActivityId |
TimeCreated |
Asignado a ASStagingTable-> Columna: ASStagingTable.TimeCreated |
ExceptionMessage |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1MaxStr |
ExceptionTypeName |
Asignado a ASStagingTable-> Columna: ASStagingTable.Data1Str |
Para obtener más información sobre este evento, vea 219 - ServiceException (https://go.microsoft.com/fwlink/?LinkId=187230) (puede estar en inglés).
2012-03-05