Наблюдение за сопоставлениями событий базы данных
В этом разделе приводится сопоставление полей таблицы подготовки в базе данных наблюдения с представлениями событий для всех типов событий, порожденных средой выполнения Windows Workflow Foundation (WF). Эти сведения необходимы при настройке базы данных наблюдения, не основанной на SQL, для использования с Windows Server AppFabric. При использовании SQL Server все представления и таблица подготовки создаются в процессе настройки AppFabric. Однако при реализации базы данных, отличной от SQL Server, необходимо создать эти представления и таблицу подготовки вручную. При возникновении события в службе WCF или WF, управляемой AppFabric, Event Collection service записывает соответствующую этому событию строку в таблицу ASStagingTable базы данных наблюдения. Эти данные необходимо сопоставить с соответствующим представлением, чтобы они могли отображаться с помощью панели мониторинга AppFabric. Это сопоставление можно выполнить с помощью любого механизма, выбранного для извлечения данных из таблицы подготовки в любые таблицы, поддерживающие представления наблюдения. Например, можно использовать триггер или задание базы данных.
В этом документе приводится только несколько событий и сопоставлений с представлениями. Полный набор событий и связанных с ними сопоставлений можно загрузить на странице сопоставлений событий базы данных AppFabric. Дополнительные сведения о процессе сопоставления см. в разделах Инструкция по использованию базы данных наблюдения, отличной от базы данных SQL Server и Наблюдение за представлениями и таблицами базы данных.
Общее сопоставление для всех событий
Таблица ASStagingTable
Все события заполняют следующие поля в таблице ASStagingTable.
Столбцы ASStagingTable | Данные события |
---|---|
EventTypeId |
Идентификатор порожденного события. |
E2EActivityId |
Идентификатор сквозного действия, порожденный вместе с событием |
Computer |
Имя компьютера, на котором порождено событие. |
EventSource |
Виртуальный путь события. |
ProcessId |
Идентификатор процесса. |
TraceLevelId |
Уровень трассировки порожденного события. |
TimeCreated |
Время создания события. |
Представление ASEventSources
Почти все события заполняют представление ASEventSources (за исключением события с кодом 499).
Имя столбца | Источник данных |
---|---|
ID |
Идентификатор источника события. Он используется в других представлениях для получения сведений об источнике события. |
Name |
Имя службы, извлекаемое из столбца EventSource в таблице ASStagingTable. |
Computer |
Сопоставляется со столбцом Computer в таблице ASStagingTable. |
Site |
Имя сайта, извлекаемое из столбца EventSource в таблице ASStagingTable. |
VirtualPath |
Полное имя VirtualPath, извлекаемое из столбца EventSource в таблице ASStagingTable. |
ApplicationVirtualPath |
Имя VirtualPath приложения, извлекаемое из столбца EventSource в таблице ASStagingTable. |
ServiceVirtualPath |
Имя VirtualPath службы, извлекаемое из столбца EventSource в таблице ASStagingTable. |
Представление ASEvents
Почти все события заполняют представление ASEvents (за исключением события с кодом 499).
Имя столбца | Источник данных |
---|---|
EventTypeId |
Столбец EventTypeId соотносится со столбцом ASStagingTable.EventTypeId. |
EventName |
Имя события. |
EventVersion |
Версия события. В данный момент равна 0. |
EventSourceID |
Сопоставляется с идентификатором источника событий в представлениях ASEventSources. |
ProcessId |
Сопоставляется со столбцом ASStagingTable.ProcessId. |
TraceLevelId |
Сопоставляется со столбцом ASStagingTable.TraceLevelID. |
TraceLevel |
Строковое представление значения в столбце TraceLevelId. |
E2EActivityId |
Сопоставляется со столбцом ASStagingTable.E2EActivityId. |
TimeCreated |
Сопоставляется со столбцом ASStagingTable.TimeCreated. |
События
Здесь приведены некоторые сопоставления событий, которые реализуются в базе данных наблюдения.
Код события 100
Помимо общих столбцов, Event Collection service заполняет для события с кодом 100 следующие столбцы таблицы ASStagingTable.
Данные события | Столбцы ASStagingTable |
---|---|
TypeName |
Data1UniqueId |
RecordNumber |
Data1BigInt |
ActivityRootId |
Data3Str |
Состояние |
Data2Str |
Имя профиля отслеживания |
Data1Str |
Заметки |
CustomAnnotations |
Данные для события 100 попадают в следующие представления: ASEventSources, ASWfEvents, ASEvents, ASWfTrackingProfiles, ASWfEventAnnotations. Сопоставление данных из ASStagingTable с общими представлениями ASEventSources и ASEvents задается в общих сопоставлениях.
Представление: ASWfEventAnnotations
В это представление добавляются заметки, порождаемые с событиями отслеживания WF в службах WF.
Имя столбца | Добавляемые данные |
---|---|
Id |
Уникальный идентификатор строки события. |
AnnotationSetId |
Ключ для поиска события WF, породившего заметку. |
Name |
Имя заметки, полученное из столбца ASStagingTable.CustomAnnotations. |
Value |
Значение заметки, полученное из столбца ASStagingTable.CustomAnnotations. |
Извлечение названия и значения заметок из ASStagingTable.CustomAnnotations
Заметки хранятся следующим образом. Заметки порождаются с указанным событием. Значения заметок хранятся в следующем формате.
< items >
< item name = "annotationName" type="System.String">annotationValue</item>
</items >
Если заметки не указаны, то строка содержит значение </items>. Значения name
и value
извлекаются путем анализа значения в столбце ASStagingTable.CustomAnnotations.
Представление ASWfTrackingProfiles
Имя столбца | Добавляемые данные |
---|---|
Id |
Уникальный идентификатор профиля отслеживания. |
Name |
Сопоставляется со столбцом ASStagingTable->ASStagingTable.Data1Str. |
Представление ASWfEvents
Указаны только столбцы, заполняемые в этом представлении для указанного события. Все прочие столбцы имеют значение NULL. Конкретные значения, заполняемые для этого события, выделены жирным шрифтом. Это представление создается для событий отслеживания, порождаемых для экземпляров WF.
Имя столбца | Добавляемые данные |
---|---|
Id |
Создаваемый уникальный идентификатор. |
EventTypeId |
100 (сопоставляется с ASStagingTable->EventTypeId) |
EventType |
«WorkflowInstanceRecord» |
EventVersion |
0 |
EventSourceId |
Столбец ID в представлении ASEventSources. |
ProcessId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.ProcessId. |
WorkflowInstanceId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1UniqueId. |
TrackingProfileId |
Уникальный идентификатор профиля отслеживания, сопоставляемый со столбцом ID в представлении ASWfTrackingProfiles. Обновление этого значения и ASWfTrackingProfiles осуществляется в единой транзакции. |
E2EActivityId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.E2EActivityId. |
TraceLevelId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.TraceLevelId. |
TraceLevel |
Зависит от TraceLevelId: 0 : LogAlways; 1 : Critical; 2 : Error; 3 : Warning; 4 : Information; 5 : Verbose. |
RecordNumber |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1BigInt. |
AnnotationSetId |
Уникальный идентификатор набора заметок, сопоставляемый со столбцом AnnotationSetId в представлении ASWfEventAnnotations. Обновление этого значения и ASWfEventAnnotations осуществляется в единой транзакции. |
TimeCreated |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.TimeCreated. |
ActivityRootId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data3Str. |
State |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data2Str. |
Представление: ASWfInstances
В это представление добавляется состояние экземпляра для активного рабочего процесса. Это представление обновляется после представления ASWfEvents, но в одной с ним транзакции. Когда в представление ASWfEvents добавляется событие, значения, внесенные в представление ASWfEvents, должны быть одновременно добавлены и в это представление, поэтому используется единая транзакция. Для каждого экземпляра рабочего процесса добавляется только одна строка. При добавлении новых событий в таблицу WFEvents строка экземпляра рабочего процесса изменяется. Строки в этой таблице добавляются или изменяются только в определенных условиях. Если событие с кодом 100 имеет состояние «Deleted» или «Unloaded» (столбец ASWfEvents.State), то строка в эту таблицу не добавляется.
Имя столбца | Добавляемые данные |
---|---|
Id |
Уникальный идентификатор записи. |
WorkflowInstanceId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1UniqueId; добавляется только раз для каждого уникального экземпляра. |
LastEventSourceId |
Значение eventSourceID, использованное для последнего изменения этой строки. Соотносится с ASWfEvents.EventSourceId. |
LastEventStatus |
Сопоставляется со столбцом ASWfEvents->: ASWfEvents.State. Добавляется и обновляется только в случае, если состояние не равно "Deleted" или "Unloaded". Если состояние равно «Deleted» или «Unloaded», то строка в эту таблицу не добавляется. |
StartTime |
Сопоставляется со столбцом ASWfEvents->: ASWfEvents.TimeCreated. Это значение TimeCreated для события с наименьшим значением RecordNumber для этого экземпляра рабочего процесса. |
LastModifiedTime |
Сопоставляется со столбцом ASWfEvents->: ASWfEvents.TimeCreated. Обновляется при изменении состояния. Обратите внимание, что для обновления этого столбца значение RecordNumber у WorkflowRecord должно превышать предыдущее значение RecordNumber, использованное для обновления этого столбца. (Возможная реализация заключается в поддержании временной таблицы, сопоставляющей идентификатор экземпляра в этой таблице со значением RecordNumber записи события рабочего процесса из таблицы ASWfEvents, осуществившей изменение. Если новое событие приводит к попытке изменения этой строки, осуществляется сравнение нового значения RecordNumber со значением RecordNumber, относящимся к последнему изменению.) |
CurrentDuration |
Длительность работающего рабочего процесса (LastModifiedTime – StartTime). |
ExceptionCount |
Количество исключений, обнаруженных рабочим процессом. Не обновляется событием с кодом 100. |
LastAbortedTime |
Не обновляется событием с кодом 100. |
Дополнительные сведения об этом событии см. в статье 100 - WorkflowInstanceRecord (https://go.microsoft.com/fwlink/?LinkId=187224).
Код события 103
Помимо общих столбцов, Event Collection service заполняет для события с кодом 103 следующие столбцы таблицы ASStagingTable.
Данные события | Столбцы ASStagingTable |
---|---|
workflowinstanceid |
Data1UniqueId |
RecordNumber |
Data1BigInt |
Имя профиля отслеживания |
Data1Str |
Состояние |
Data2Str |
ActivityName |
Data3Str |
ActivityId |
Data4Str |
ActivityInstanceId |
Data5Str |
ActivityTypeName |
Data6Str |
Заметки |
CustomAnnotations |
Переменные |
CustomProperties |
Аргументы |
CustomArguments |
Данные для события 103 попадают в следующие представления: ASEventSources, ASWfEvents, ASEvents, ASWfTrackingProfiles, ASWfEventAnnotations, ASWfEventProperties, ASWfPropertyNames. Сопоставление данных из ASStagingTable с общими представлениями ASEventSources и ASEvents задается в общих сопоставлениях.
Представление: ASWfEventAnnotations
В это представление добавляются заметки, порождаемые с событиями отслеживания WF в службах WF.
Имя столбца | Добавляемые данные |
---|---|
Id |
Уникальный идентификатор строки события. |
AnnotationSetId |
Ключ для поиска события WF, породившего заметку. |
Name |
Имя заметки, полученное из столбца ASStagingTable.CustomAnnotations. |
Value |
Значение заметки, полученное из столбца ASStagingTable.CustomAnnotations. |
Извлечение названия и значения заметок из ASStagingTable.CustomAnnotations
Заметки порождаются с указанным событием. Значения заметок хранятся в следующем формате. Если заметки не указаны, то строка содержит значение </items>. Имя и значение извлекаются путем анализа значения в столбце ASStagingTable.CustomAnnotations.
< items >
< item name = "annotationName" type="System.String">annotationValue</item>
</items >
Представление: ASWfPropertyNames
Это представление создается для имен отслеживаемых свойств, извлекаемых из служб WF. Имя может быть именем переменной, именем аргумента или именем в значении customtrackingrecord.
Имя столбца | Добавляемые данные |
---|---|
EventSourceId |
Источник этого события. Это значение указывает на идентификатор в представлении EventSources. |
Name |
Имя отслеживаемого свойства. |
Type |
Тип отслеживаемого свойства. |
Извлечение имени и типа из столбца ASStagingTable.CustomProperties или ASStagingTable.CustomArguments
Переменные рабочих процессов хранятся в столбце ASStagingTable.CustomProperties. Для события с кодом 103 используется следующий формат переменных. Если переменные не указаны, то строка содержит значение </items>. Для получения имени и типа переменной следует выполнить анализ XML-строки.
< items >
< item name = "variableName" type="System.String">variableValue</item>
</items >
Аргументы хранятся в столбце ASStagingTable.CustomArguments. Для события с кодом 103 используется следующий формат аргументов. Для получения имени и типа аргумента следует выполнить анализ XML-строки. Если аргументы не указаны, то строка содержит значение </items>.
< items >
< item name = "argumentName" type="System.String">argumentValue</item>
</items >
Представление: ASWfEventProperties
Это представление содержит по одной строке для каждого экземпляра переменной, аргумента или настраиваемых данных свойства, извлекаемого из события WF.
Имя столбца | Добавляемые данные |
---|---|
EventId |
Соответствует идентификатору события в столбце ASWfEvents-> ASWfEvents.Id и указывает на событие WF, породившее соответствующие данные. |
Name |
Имя, извлеченное при анализе XML из столбца ASStagingTable.CustomArguments или ASStagingTable.CustomProperties. |
WfDataSource |
Источник свойства (аргумент, переменная или настраиваемые данные). Если данные берутся из столбца ASStagingTable.CustomArguments, значение равно «Argument». Если данные берутся из столбца ASStagingTable.CustomProperties , значение равно «Variable». |
Type |
Тип свойства, извлекаемого из XML-данных в CustomArguments или CustomProperties. |
Value |
Значение свойства, извлеченное из XML-данных в CustomArguments или CustomProperties, если тип является простым. |
ValueBlob |
Значение свойства, извлеченное из XML-данных в CustomArguments или CustomProperties, если тип является сложным. |
TimeCreated |
Отметка времени порождения свойства, сопоставляемая с ASWfEvents.TimeCreated. |
Представление ASWfTrackingProfiles
Имя столбца | Добавляемые данные |
---|---|
Id |
Уникальный идентификатор профиля отслеживания. |
Name |
Сопоставляется со столбцом ASStagingTable->ASStagingTable.Data1Str. |
Представление ASWfEvents
Указаны только столбцы, заполняемые в этом представлении для указанного события. Все прочие столбцы имеют значение NULL. Конкретные значения, заполняемые для этого события, выделены жирным шрифтом. Это представление создается для событий отслеживания, порождаемых для экземпляров WF.
Имя столбца | Добавляемые данные |
---|---|
Id |
Создаваемый уникальный идентификатор. |
EventTypeId |
103 (сопоставляется с ASStagingTable->EventTypeId) |
EventType |
«ActivityStateRecord» |
EventVersion |
0 |
EventSourceId |
Столбец ID в представлении ASEventSources. |
ProcessId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.ProcessId. |
WorkflowInstanceId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1UniqueId. |
TrackingProfileId |
Уникальный идентификатор профиля отслеживания, сопоставляемый со столбцом ID в представлении ASWfTrackingProfiles. Обновление этого значения и ASWfTrackingProfiles осуществляется в единой транзакции. |
E2EActivityId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.E2EActivityId. |
TraceLevelId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.TraceLevelId. |
TraceLevel |
Зависит от TraceLevelId: 0 : LogAlways; 1 : Critical; 2 : Error; 3 : Warning; 4 : Information; 5 : Verbose. |
RecordNumber |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1BigInt. |
AnnotationSetId |
Уникальный идентификатор набора заметок, сопоставляемый со столбцом AnnotationSetId в представлении ASWfEventAnnotations. Обновление этого значения и ASWfEventAnnotations осуществляется в единой транзакции. |
TimeCreated |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.TimeCreated. |
ActivityName |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data3Str. |
ActivityId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data4Str. |
ActivityInstanceId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data5Str. |
ActivityTypeName |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data6Str. |
Состояние |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data2Str. |
Представление: ASWfInstances
В это представление добавляется состояние экземпляра для активного рабочего процесса. Это представление обновляется после представления ASWfEvents, но в одной с ним транзакции. Когда в представление ASWfEvents добавляется событие, значения, внесенные в представление ASWfEvents, должны быть одновременно добавлены и в это представление, поэтому используется единая транзакция. Для каждого экземпляра рабочего процесса добавляется только одна строка. При добавлении новых событий в таблицу WFEvents строка экземпляра рабочего процесса изменяется.
Имя столбца | Добавляемые данные |
---|---|
Id |
Уникальный идентификатор записи. |
WorkflowInstanceId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1UniqueId. Добавляется только раз для каждого уникального экземпляра. |
LastEventSourceId |
Значение eventSourceID, использованное для последнего изменения этой строки. Соотносится с ASWfEvents.EventSourceId. |
LastEventStatus |
Сопоставляется со столбцом ASWfEvents->: ASWfEvents.State. Добавляется и обновляется только в случае, если состояние не равно "Deleted" или "Unloaded". Если состояние равно «Deleted» или «Unloaded», то строка в эту таблицу не добавляется. У события с кодом 101 значение равно «UnhandledException». |
StartTime |
Сопоставляется со столбцом ASWfEvents->: ASWfEvents.TimeCreated. Это значение TimeCreated для события с наименьшим значением RecordNumber для этого экземпляра рабочего процесса, представленного значением ASWfEvents.WorkflowInstanceId. |
LastModifiedTime |
Сопоставляется со столбцом ASWfEvents->: ASWfEvents.TimeCreated. Обновляется при изменении состояния. Обратите внимание, что для обновления этого столбца значение RecordNumber у WorkflowRecord должно превышать предыдущее значение RecordNumber, использованное для обновления этого столбца. (Возможная реализация заключается в поддержании временной таблицы, сопоставляющей идентификатор экземпляра в этой таблице со значением RecordNumber записи события рабочего процесса из таблицы ASWfEvents, осуществившей изменение. Если новое событие приводит к попытке изменения этой строки, осуществляется сравнение нового значения RecordNumber со значением RecordNumber, относящимся к последнему изменению.) |
CurrentDuration |
Длительность работающего рабочего процесса (LastModifiedTime – StartTime). |
ExceptionCount |
Количество исключений, обнаруженных рабочим процессом. Число событий с кодом 101, обнаруженных этим экземпляром рабочего процесса, представленным идентификатором экземпляра ASWfEvents. WorkflowInstanceId. |
LastAbortedTime |
Последнее значение времени отказа в представлении ASWfEvents для событий с кодом 101 или 102 для рабочего процесса, представленного идентификатором ASWfEvents.WorkflowInstanceId. |
Дополнительные сведения об этом событии см. в статье 103 - ActivityStateRecord (https://go.microsoft.com/fwlink/?LinkId=187226).
Код события 214
Помимо общих столбцов, Event Collection service заполняет для события с кодом 214 следующие столбцы таблицы ASStagingTable.
Данные события | Столбцы ASStagingTable |
---|---|
MethodName |
Data1Str |
Duration |
Data1Int |
Данные для события 214 попадают в следующие представления: ASEventSources, ASWcfEvents, ASEvents. Сопоставление данных из ASStagingTable с общими представлениями ASEventSources и ASEvents задается в общих сопоставлениях.
Представление ASWcfEvents
Указаны только столбцы, заполняемые в этом представлении для указанного события. Все прочие столбцы имеют значение NULL. Конкретные значения, заполняемые для этого события, выделены жирным шрифтом.
Имя столбца | Добавляемые данные |
---|---|
Id |
Создаваемый уникальный идентификатор. |
EventTypeId |
214 (сопоставляется с ASStagingTable->EventTypeId) |
EventType |
“OperationCompleted” |
EventVersion |
0 |
EventSourceId |
Столбец ID в представлении ASEventSources. |
ProcessId |
Сопоставляется со столбцом ASStagingTable->: ProcessId |
TraceLevelId |
Сопоставляется со столбцом ASStagingTable->: TraceLevelId |
TraceLevel |
Зависит от TraceLevelId: 0 : LogAlways; 1 : Critical; 2 : Error; 3 : Warning; 4 : Information; 5 : Verbose. |
E2EActivityId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.E2EActivityId. |
TimeCreated |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.TimeCreated. |
OperationName |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1Str. |
Duration |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1Int. |
Дополнительные сведения об этом событии см. в статье 214 - OperationCompleted (https://go.microsoft.com/fwlink/?LinkId=187225).
Код события 219
Помимо общих столбцов, Event Collection service заполняет для события с кодом 214 следующие столбцы таблицы ASStagingTable.
Данные события | Столбцы ASStagingTable |
---|---|
ExceptionTypeName |
Data1Str |
ExceptionToString |
Data1MaxStr |
Данные для события 219 попадают в следующие представления: ASEventSources, ASWcfEvents, ASEvents. Сопоставление данных из ASStagingTable с общими представлениями ASEventSources и ASEvents задается в общих сопоставлениях.
Представление ASWcfEvents
Указаны только столбцы, заполняемые в этом представлении для указанного события. Все прочие столбцы имеют значение NULL. Конкретные значения, заполняемые для этого события, выделены жирным шрифтом.
Имя столбца | Добавляемые данные |
---|---|
Id |
Создаваемый уникальный идентификатор. |
EventTypeId |
219 (сопоставляется с ASStagingTable-> ASStagingTable.EventTypeId). |
EventType |
«ServiceException» |
EventVersion |
0 |
EventSourceId |
Столбец ID в представлении ASEventSources. Это сопоставление события в ASWcfEvents с представлением ASEventSources. |
ProcessId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.ProcessId. |
TraceLevelId. |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.TraceLevelId. |
TraceLevel |
Зависит от TraceLevelId: 0 : LogAlways; 1 : Critical; 2 : Error; 3 : Warning; 4 : Information; 5 : Verbose. |
E2EActivityId |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.E2EActivityId. |
TimeCreated |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.TimeCreated. |
ExceptionMessage |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1MaxStr. |
ExceptionTypeName |
Сопоставляется со столбцом ASStagingTable->: ASStagingTable.Data1Str. |
Дополнительные сведения об этом событии см. в статье 219 - ServiceException (https://go.microsoft.com/fwlink/?LinkId=187230).
2011-12-05