ワークフロー追跡サービス データベース
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
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 テーブルには、アクティビティがその有効期間内に遷移したさまざまな状態が保存されます。特定のワークフロー インスタンス内の特定のアクティビティの場合は、複数のアクティビティ状態を取ることができます。その内の 1 つだけが、現在の状態になります。
列 | 説明 |
---|---|
ActivityExecutionStatusEventId |
アクティビティ実行状態レコードの一意な ID。 |
WorkflowInstanceInternalId |
アクティビティが属しているワークフロー インスタンスの内部データベース ID。 |
EventOrder |
イベントが発生した順序。 |
ActivityInstanceId |
状態が記録されるアクティビティの一意な ID。 |
ExecutionStatusId |
さまざまな状態の記述が保存されている ActivityExecutionStatus テーブルへのリンク。 |
EventDateTime |
イベントが発生した日時。 |
DbEventDateTime |
イベントが発生したデータベース日時。 |
ActivityExecutionStatus
ActivityExecutionStatus テーブルは、アクティビティが遷移可能なすべての実行状態のリテラル値が保存されている参照テーブルです。
列 | 説明 |
---|---|
ExecutionStatusId |
状態の一意な ID。 |
Description |
状態のリテラル値。 |
TrackingDataItem
SqlTrackingService によって、追跡プロファイルで指定されたように項目が追跡される場合は、アクティビティのそれぞれの状態に対して、データに似た変数やプロパティなどのセットが TrackingDataItem テーブルに保存されます。追跡プロファイルには、特定のアクティビティが特定の状態に遷移したときに、追跡する必要のあるワークフロー属性を指定することができます。
列 | 説明 |
---|---|
TrackingDataItemId |
特定の workflowInstance に属しているアクティビティの特定の状態に関する特定の結果のレコードを表す一意な ID。 |
WorkflowInstanceInternalId |
ワークフロー インスタンスの内部データベース ID。 |
EventId |
追跡データ項目が抽出されたイベント ID。 |
EventTypeId |
追跡データ項目が抽出されたイベントの種類。 |
FieldName |
追跡される変数 (データ項目) の名前。 |
FieldTypeId |
追跡される変数 (データ項目) の型 ID。これは、Type テーブルを参照しています。 |
Data_Str |
追跡されるデータの文字列値 (プリミティブ型で文字列に変換可能な場合)。 |
Data_Blob |
追跡されるデータの値のバイナリ ラージ オブジェクト値 (プリミティブ型以外で、バイナリにシリアル化可能な場合)。 |
DataNonSerializable |
データは存在していたが、文字列に変換 (またはバイナリにシリアル化) できなかったことを示すフラグ。 |
TrackingDataItemAnnotation
TrackingDataItemAnnotation テーブルには、特定の追跡データ項目に関してワークフロー内で作成されたすべての注釈が保存されます。注釈は、追跡プロファイルで示されます。
列 | 説明 |
---|---|
TrackingDataItemId |
注釈が保存される追跡データ項目の ID。 |
WorkflowInstanceInternalId |
ワークフロー インスタンスの内部データベース ID。 |
Annotation |
注釈のリテラル値。 |
EventAnnotation
EventAnnotation テーブルには、ワークフロー イベントに関連付けられたすべての注釈が保存されます。
列 | 説明 |
---|---|
WorkflowInstanceInternalId |
ワークフロー インスタンスの内部データベース ID。 |
EventId |
注釈が作成されたイベントの内部データベース ID。 |
EventTypeId |
イベントの種類の内部データベース ID。 |
Annotation |
注釈のリテラル値。 |
WorkflowInstanceEvent
WorkflowInstanceEvent テーブルには、ワークフローがその有効期間内に通過したさまざまなイベントが保存されます。特定のワークフロー インスタンスに対して複数のイベントを保存することができますが、その内の 1 つだけが、現在のイベントになります。
列 | 説明 |
---|---|
WorkflowInstanceEventId |
ワークフロー インスタンス イベント レコードの一意な ID。 |
WorkflowInstanceInternalId |
アクティビティが属しているワークフロー インスタンスの内部データベース ID。 |
EventDateTime |
イベントが発生した日時。 |
EventOrder |
イベントが発生した順序。 |
EventArgTypeId |
イベント引数のデータ型の内部データベース ID。 |
EventArg |
イベント引数のバイナリにシリアル化されたデータ。 |
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 |
追跡されるデータの値のバイナリ ラージ オブジェクト値 (プリミティブ型以外で、バイナリにシリアル化可能な場合)。 |
DataNonSerializable |
データは存在していたが、文字列に変換 (またはバイナリにシリアル化) できなかったことを示すフラグ。 |
DbEventDateTime |
イベントが発生したデータベース日時。 |
AddedActivity
AddedActivity テーブルには、ワークフローが変化したときに、ワークフローに追加されるアクティビティが保存されます。ワークフローが変化するたびに複数のアクティビティを追加することができます。
列 | 説明 |
---|---|
WorkflowInstanceInternalId |
ワークフロー インスタンスの内部データベース ID。 |
WorkflowInstanceEventId |
ワークフロー インスタンスのイベントへの参照。 |
QualifiedName |
追加されるアクティビティの修飾名。 |
ActivityTypeId |
動的変更の一部として追加されたアクティビティの型とアセンブリ名を示す Type テーブルへのリンク。 |
ParentQualifiedName |
このアクティビティが含まれる親アクティビティの修飾名。 |
AddedActivityAction |
動的な更新イベントから作成された ActivityChangeAction オブジェクトのシリアル化された値。 |
Order |
アクティビティがワークフローに追加された順序 |
RemovedActivity
RemovedActivity テーブルには、ワークフローの変化によって削除されたすべてのアクティビティが保存されます。ワークフローの変化ごとに複数のアクティビティを削除することができます。
列 | 説明 |
---|---|
WorkflowInstanceInternalId |
ワークフロー インスタンスの内部データベース ID。 |
WorkflowInstanceEventId |
ワークフロー インスタンスのイベントへの参照。 |
QualifiedName |
削除されたアクティビティの修飾名。 |
ParentQualifiedName |
このアクティビティが含まれる親アクティビティの修飾名。 |
RemovedActivityAction |
動的な更新イベントから作成された ActivityChangeAction オブジェクトのシリアル化された値。 |
Order |
アクティビティがワークフローに追加された順序 |
TrackingProfile
TrackingProfile テーブルには、特定のワークフロー型の追跡プロファイルが保存されます。
列 | 説明 |
---|---|
TrackingProfileId |
追跡プロファイルの一意な ID。 |
Version |
追跡プロファイルのバージョンです。追跡プロファイルのバージョン (TrackingProfile.Version、または追跡プロファイル XML のバージョン属性) に対応している必要があります。 |
WorkflowTypeId |
ワークフローの型名とアセンブリ名が保存されている Type テーブルへのリンク。 |
TrackingProfileXml |
追跡プロファイル XML。 |
InsertDateTime |
プロファイルが挿入された日時。 |
TrackingProfileInstance
TrackingProfileInstance テーブルには、特定のワークフロー インスタンスに関連付けられた追跡プロファイルが保存されます。このテーブルは、複数のプロファイルが複数のワークフロー インスタンスに対して使用される場合に使用されます。
列 | 説明 |
---|---|
InstanceId |
追跡プロファイルが保存されるワークフロー インスタンスの内部 ID。 |
TrackingProfileXml |
追跡プロファイル XML。 |
UpdatedDateTime |
更新が行われた日時。 |
DefaultTrackingProfile
DefaultTrackingProfile テーブルには、既定の追跡プロファイルが保存されます。追跡プロファイルが特定のワークフロー型に関連付けられていない場合は、既定の追跡プロファイルが使用されます。
列 | 説明 |
---|---|
Version |
追跡プロファイルのバージョン番号です。追跡プロファイルのバージョン (TrackingProfile.Version、または追跡プロファイル 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.