워크플로 추적 서비스 데이터베이스
Windows Workflow Foundation의 SQL 추적 서비스를 사용하면 워크플로 및 연결된 활동에 대한 추적 정보를 추가할 수 있습니다. SqlTrackingQuery 클래스는 추적 데이터베이스에 포함된 데이터에 대한 고급 액세스를 제공합니다. 그러나 보다 자세한 정보를 위해 SQL 추적 서비스 데이터베이스 뷰에 대해 직접 쿼리를 사용할 수도 있습니다. 이러한 뷰는 내부 SQL 추적 서비스 테이블 스키마에 직접 매핑됩니다.
SQL 추적 서비스 데이터베이스 테이블
다음 정보는 SQL 추적 서비스에 사용되는 테이블 및 연결된 열에 대해 간략하게 설명합니다.
Workflow
Workflow 테이블은 SqlTrackingService가 추적한 모든 워크플로 유형의 워크플로 정의를 저장합니다. 처음 워크플로를 인스턴스화하고 SqlTrackingService를 이 워크플로 유형에 사용할 수 있을 때 채워집니다.
열 | 설명 |
---|---|
WorkflowTypeId |
워크플로 유형이 나타나는, 유형 이름과 어셈블리 이름을 저장하는 Type 테이블에 대한 링크입니다. |
WorkflowDefinition |
워크플로 정의입니다. |
작업(Activity)
Activity 테이블은 해당 워크플로 유형에 나타나는 모든 활동 유형을 저장합니다.
열 | 설명 |
---|---|
WorkflowTypeId |
워크플로 유형이 나타나는, 유형 이름과 어셈블리 이름을 저장하는 Type 테이블에 대한 링크입니다. |
QualifiedName |
워크플로 정의의 정규화된 활동 이름입니다. |
ActivityTypeId |
활동 유형이 나타나는, 유형 이름과 어셈블리 이름을 저장하는 Type 테이블에 대한 링크입니다. |
ParentQualifiedName |
활동이 다른 활동에서 구성된 경우 이 필드는 부모 활동의 정규화된 활동 이름을 포함합니다. |
형식
Type 테이블은 유형이 발생하는 모든 유형 정보 및 어셈블리 이름을 저장합니다. 여기에는 워크플로 유형, 활동 유형 및 SqlTrackingService 내에서 사용되는 다른 모든 유형이 포함됩니다. 예를 들어 문자열을 추적 데이터 항목으로 추적한 경우 문자열 형식 정보가 이 테이블에 저장됩니다.
열 | 설명 |
---|---|
TypeId |
유형의 고유 ID입니다. |
TypeFullName |
지정된 형식의 정규화된 이름입니다. |
AssemblyFullName |
유형이 저장되는 어셈블리의 전체 이름입니다. |
IsInstanceType |
워크플로 인스턴스가 XOML 전용 인스턴스인지(이 경우 유형 및 어셈블리 전체 이름이 null임) 여부를 나타내는 부울 값입니다. |
WorkflowInstance
WorkflowInstance 테이블은 추적 데이터베이스에서 추적된 모든 워크플로 인스턴스의 목록을 유지 관리합니다.
열 | 설명 |
---|---|
WorkflowInstanceInternalId |
데이터베이스가 워크플로 인스턴스에 지정한 고유한 내부 ID입니다. 데이터베이스의 다른 테이블을 조인할 외래 키로 사용됩니다. |
WorkflowInstanceId |
워크플로 인스턴스의 GUID입니다. |
ContextGuid |
이 워크플로 인스턴스에 대한 컨텍스트 정보입니다. |
CallerInstanceId |
이 워크플로 인스턴스를 호출한 워크플로 인스턴스의 ID입니다. |
CallPath |
워크플로 인스턴스가 워크플로 인스턴스에 의해 호출되고, 다시 이 워크플로 인스턴스가 다른 워크플로 인스턴스에 의해 호출되는 경우에 사용되는 전체 호출 경로입니다. |
CallerContextGuid |
호출자에 대한 컨텍스트 정보입니다. |
CallerParentContextGuid |
호출 인스턴스의 부모 워크플로 인스턴스에 대한 컨텍스트 정보입니다. |
WorkflowTypeId |
워크플로 유형 ID를 사용한 Workflow 테이블에 대한 링크입니다. |
InitializedDateTime |
워크플로 인스턴스의 초기화 날짜 및 시간입니다. |
CreatedDateTime |
워크플로 인스턴스의 생성 날짜 및 시간입니다. |
DbInitializedDateTime |
워크플로 인스턴스 레코드가 초기화된 데이터베이스 날짜 및 시간입니다. |
EndDateTime |
워크플로 인스턴스의 완료/종료 날짜 및 시간입니다. |
DbEndDateTime |
워크플로 인스턴스 레코드가 커밋된 데이터베이스 날짜 및 시간입니다. |
ActivityInstance
ActivityInstance 테이블은 추적되는 활동 인스턴스를 저장하는 데 사용됩니다. 이 테이블과 WorkflowInstance 테이블 간에는 다대일 관계가 있습니다.
열 | 설명 |
---|---|
WorkflowInstanceInternalId |
활동이 속하는 워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
ActivityInstanceId |
지정된 워크플로 인스턴스에 대해 추적되는 활동의 고유 ID입니다. |
QualifiedName |
워크플로 정의의 정규화된 활동 이름입니다. |
ContextGuid |
활동의 컨텍스트입니다. |
ParentContextGuid |
부모 활동의 컨텍스트입니다. |
WorkflowInstanceEventId |
워크플로 인스턴스 이벤트 레코드의 고유 ID입니다. |
ActivityExecutionStatusEvent
ActivityExecutionStatusEvent 테이블은 활동이 수명 주기에서 거친 여러 상태를 저장합니다. 지정된 워크플로 인스턴스의 지정된 활동에 대해 여러 개의 활동 상태가 있을 수 있습니다. 이러한 상태 중 하나만 현재 상태입니다.
열 | 설명 |
---|---|
ActivityExecutionStatusEventId |
활동 실행 상태 레코드의 고유 ID입니다. |
WorkflowInstanceInternalId |
활동이 속하는 워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
EventOrder |
이벤트가 발생한 순서입니다. |
ActivityInstanceId |
상태가 기록된 활동의 고유 ID입니다. |
ExecutionStatusId |
여러 상태 설명을 저장하는 ActivityExecutionStatus 테이블에 대한 링크입니다. |
EventDateTime |
이벤트가 발생한 날짜 및 시간입니다. |
DbEventDateTime |
이벤트가 발생한 데이터베이스 날짜 및 시간입니다. |
ActivityExecutionStatus
ActivityExecutionStatus 테이블은 활동이 거칠 수 있는 모든 실행 상태의 리터럴 값을 저장하는 참조 테이블입니다.
열 | 설명 |
---|---|
ExecutionStatusId |
상태의 고유 ID입니다. |
Description |
상태의 리터럴 값입니다. |
TrackingDataItem
각 활동 상태에 대해 TrackingDataItem 테이블은 SqlTrackingService가 추적 프로필에 표시된 대로 이러한 항목을 추적하는 경우 데이터와 유사한 변수, 속성 등의 집합을 저장합니다. 추적 프로필은 특정 활동이 특정 상태에 도달할 때 추적해야 하는 워크플로 특성을 지정할 수 있습니다.
열 | 설명 |
---|---|
TrackingDataItemId |
특정 workflowInstance에 속하는, 지정된 활동 상태에 대한 지정된 아티팩트의 레코드를 나타내는 고유 ID입니다. |
WorkflowInstanceInternalId |
워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
EventId |
추적 데이터 항목이 추출된 이벤트 ID입니다. |
EventTypeId |
추적 데이터 항목이 추출된 이벤트 유형입니다. |
FieldName |
추적되는 변수(데이터 항목)의 이름입니다. |
FieldTypeId |
추적되는 변수(데이터 항목)의 유형 ID입니다. Type 테이블을 참조합니다. |
Data_Str |
추적되는 데이터의 문자열 값입니다(기본 형식이며 문자열로 변환할 수 있는 경우). |
Data_Blob |
추적되는 데이터 값의 BLOB(Binary Large Object)입니다(기본 형식이 아니며 이진 serialize할 수 있는 경우). |
DataNonSerializable |
데이터가 있었지만 문자열로 변환하거나 이진 serialize할 수 없었음을 나타내는 플래그입니다. |
TrackingDataItemAnnotation
TrackingDataItemAnnotation 테이블은 지정된 추적 데이터 항목에 설정된 모든 주석을 저장합니다. 추적 프로필이 주석을 표시합니다.
열 | 설명 |
---|---|
TrackingDataItemId |
주석이 저장되는 추적 데이터 항목의 ID입니다. |
WorkflowInstanceInternalId |
워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
Annotation |
주석의 리터럴 값입니다. |
EventAnnotation
EventAnnotation 테이블은 워크플로 이벤트와 연결된 모든 주석을 저장합니다.
열 | 설명 |
---|---|
WorkflowInstanceInternalId |
워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
EventId |
주석이 발생한 이벤트의 내부 데이터베이스 ID입니다. |
EventTypeId |
이벤트 형식의 내부 데이터베이스 ID입니다. |
Annotation |
주석의 리터럴 값입니다. |
WorkflowInstanceEvent
WorkflowInstanceEvent 테이블은 워크플로가 수명 주기에서 거친 여러 이벤트를 저장합니다. 지정된 워크플로 인스턴스에 대한 여러 이벤트가 있을 수 있습니다. 그러나 이러한 이벤트 중 하나만 현재 이벤트입니다.
열 | 설명 |
---|---|
WorkflowInstanceEventId |
워크플로 인스턴스 이벤트 레코드의 고유 ID입니다. |
WorkflowInstanceInternalId |
활동이 속하는 워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
EventDateTime |
이벤트가 발생한 날짜 및 시간입니다. |
EventOrder |
이벤트가 발생한 순서입니다. |
EventArgTypeId |
이벤트 인수의 데이터 형식에 대한 내부 데이터베이스 ID입니다. |
EventArg |
이벤트 인수의 이진 serialize된 데이터입니다. |
DbEventDateTime |
이벤트가 발생한 데이터베이스 날짜 및 시간입니다. |
TrackingWorkflowEvent
TrackingWorkflowEvent 테이블은 워크플로가 거칠 수 있는 모든 이벤트의 리터럴 값을 저장합니다.
열 | 설명 |
---|---|
TrackingWorkflowEventId |
이벤트의 고유 ID입니다. |
Description |
이벤트의 리터럴 값입니다. |
UserEvent
UserEvent 테이블은 사용자 지정 사용자 추적 지점에서 내보내고 추적하는 여러 이벤트를 저장합니다. 지정된 워크플로 인스턴스에 여러 사용자 이벤트가 있을 수 있습니다.
열 | 설명 |
---|---|
UserEventId |
사용자 이벤트의 고유 ID입니다. |
WorkflowInstanceInternalId |
활동이 속하는 워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
EventOrder |
이벤트가 발생한 순서입니다. |
ActivityInstanceId |
사용자 이벤트가 발생한(이벤트를 내보내는 코드가 워크플로 코드에서 발생하는 경우) 활동의 고유 ID입니다. |
EventDateTime |
이벤트가 발생한 날짜 및 시간입니다. |
UserDataKey |
TrackData 메서드를 사용할 때 사용자 이벤트에 포함되어 전달되는 키 값입니다. |
UserDataTypeId |
추적되는 사용자 데이터의 Type 테이블에 있는 유형 ID입니다. |
UserData_Str |
추적되는 데이터의 문자열 값입니다(기본 형식이며 문자열로 변환할 수 있는 경우). |
UserData_Blob |
추적되는 데이터 값의 BLOB(Binary Large Object)입니다(기본 형식이 아니며 이진 serialize할 수 있는 경우). |
DataNonSerializable |
데이터가 있었지만 문자열로 변환하거나 이진 serialize할 수 없었음을 나타내는 플래그입니다. |
DbEventDateTime |
이벤트가 발생한 데이터베이스 날짜 및 시간입니다. |
AddedActivity
AddedActivity 테이블은 워크플로가 변경될 때 워크플로에 추가되는 활동을 저장합니다. 각 워크플로 변경에 대해 많은 활동이 추가될 수 있습니다.
열 | 설명 |
---|---|
WorkflowInstanceInternalId |
워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
WorkflowInstanceEventId |
워크플로 인스턴스의 이벤트에 대한 참조입니다. |
QualifiedName |
추가되는 활동의 정규화된 이름입니다. |
ActivityTypeId |
동적 변경의 일부로 추가된 활동의 유형과 어셈블리 이름을 나타내는 Type 테이블에 대한 링크입니다. |
ParentQualifiedName |
이 활동이 포함된 부모 활동의 정규화된 이름입니다. |
AddedActivityAction |
동적 업데이트 이벤트에서 만든 ActivityChangeAction 개체의 serialize된 값입니다. |
Order |
활동이 워크플로에 추가된 순서입니다. |
RemovedActivity
RemovedActivity 테이블은 워크플로 변경에 의해 제거된 모든 활동을 저장합니다. 각 워크플로 변경에 대해 많은 활동이 제거될 수 있습니다.
열 | 설명 |
---|---|
WorkflowInstanceInternalId |
워크플로 인스턴스의 내부 데이터베이스 ID입니다. |
WorkflowInstanceEventId |
워크플로 인스턴스의 이벤트에 대한 참조입니다. |
QualifiedName |
제거된 활동의 정규화된 이름입니다. |
ParentQualifiedName |
이 활동이 포함된 부모 활동의 정규화된 이름입니다. |
RemovedActivityAction |
동적 업데이트 이벤트에서 만든 ActivityChangeAction 개체의 serialize된 값입니다. |
Order |
활동이 워크플로에 추가된 순서입니다. |
TrackingProfile
TrackingProfile 테이블은 지정된 워크플로 유형에 대한 추적 프로필을 저장합니다.
열 | 설명 |
---|---|
TrackingProfileId |
추적 프로필의 고유 ID입니다. |
Version |
Tracking Profile의 버전((TrackingProfile.Version 또는 Tracking Profile XML의 버전 특성)과 일치해야 하는 추적 프로필의 버전입니다. |
WorkflowTypeId |
워크플로의 유형 이름과 어셈블리 이름을 저장하는 Type 테이블에 대한 링크입니다. |
TrackingProfileXml |
추적 프로필 XML입니다. |
InsertDateTime |
프로필을 삽입한 날짜 및 시간입니다. |
TrackingProfileInstance
TrackingProfileInstance 테이블은 특정 워크플로 인스턴스와 연결된 추적 프로필을 저장합니다. 각 워크플로 인스턴스에 다른 프로필이 사용되는 경우에 사용합니다.
열 | 설명 |
---|---|
InstanceId |
추적 프로필이 저장되는 워크플로 인스턴스 내부 ID입니다. |
TrackingProfileXml |
추적 프로필 XML입니다. |
UpdatedDateTime |
업데이트가 발생한 날짜 및 시간입니다. |
DefaultTrackingProfile
DefaultTrackingProfile 테이블은 기본 추적 프로필을 저장합니다. 추적 프로필이 지정된 워크플로 유형과 연결되어 있지 않으면 기본 추적 프로필이 사용됩니다.
열 | 설명 |
---|---|
Version |
Tracking Profile의 버전(TrackingProfile.Version 또는 Tracking Profile XML의 버전 특성)과 일치해야 하는 추적 프로필의 버전 번호입니다. |
TrackingProfileXml |
추적 프로필 XML입니다. |
InsertDateTime |
추적 프로필을 삽입한 날짜 및 시간입니다. |
TrackingPartitionInterval
TrackingPartitionInterval 테이블은 데이터 유지 관리를 위해 분할을 사용할 수 있는 파티션 간격을 저장합니다. SqlTrackingService 클래스의 PartitionOnCompletion 속성이 true로 설정된 경우에만 발생합니다. 기본값은 매월("m")입니다. 매일("d") 또는 매년("y")으로 설정할 수 있습니다.
열 | 설명 |
---|---|
Interval |
테이블을 분할할 간격입니다. |
TrackingPartitionSetName
TrackingPartitionSetName 테이블은 파티션 집합 이름에 대한 정보를 포함합니다.
열 | 설명 |
---|---|
PartitionId |
파티션의 고유 ID입니다. |
Name |
파티션의 이름입니다. |
CreatedDateTime |
파티션을 만든 날짜 및 시간입니다. |
EndDateTime |
파티션이 종료된 날짜 및 시간입니다. |
PartitionInterval |
이 특정 집합의 파티션 간격입니다. |
SQL 추적 서비스 데이터베이스 역할
tracking_writer
호스트 프로세스를 실행하는 계정이 실행되어야 하는 역할입니다. 이 역할에는 추적 프로필을 검색하고 추적 데이터를 쓸 권한이 있습니다.
tracking_reader
이 역할의 계정은 모든 데이터를 볼 수 있지만 데이터를 업데이트하거나 수정할 수 없습니다. 이 역할의 사용자는 내부 테이블에 액세스할 수 없습니다.
tracking_profilereaderwriter
이 역할은 프로필 데이터를 수정해야 하는 사용자 계정에 사용됩니다.
참고 항목
참조
기타 리소스
Simple Tracking Example
Windows Workflow Foundation 일반 참조
Copyright © 2007 by Microsoft Corporation. All rights reserved.