ワークフロー モニタのサンプル
ワークフロー モニタは、完了したワークフローと現在実行中のワークフローに関するワークフローおよびアクティビティのステータス情報を表示するツールです。モニタは、追跡データベースから追跡情報を読み取り、現在のワークフローとアクティビティの状態、および現在のワークフローの実行をワークフロー デザイナ コントロールを使って表示します。
ワークフロー モニタを正しく機能させるには、データベースに追跡情報を持つワークフロー型が、GAC にあるか、あるいはワークフロー モニタの実行可能ファイルと同じディレクトリにある必要があります。いずれかのタイプが欠落していると、ワークフロー定義の読み込み中にエラーが発生します。さらに、ワークフロー モニタにワークフロー型を正しく検出させるには、新しい追跡データベースを作成し、ワークフローを実行する必要があります。
sql 追跡サービスをワークフロー ランタイムに追加して sql 追跡データベースに追跡イベントを追跡記録する方法については、以降のセクションを参照してください。
モニタするホストの設定
モニタにワークフローとアクティビティを表示するには、デザイナおよびシリアル化コードが使用可能になっている必要があります。ワークフローおよびアクティビティ タイプはすべて、gacutil.exe を使用してグローバル アセンブリ キャッシュ (GAC) に登録するか、または WorkflowMonitor.exe と同じディレクトリに置く必要があります。さらに、SqlTrackingQuery が SqlTrackingService テーブルからワークフロー、アクティビティ情報、およびワークフロー定義を読み取るためにはタイプへのアクセスが必要です。
次の手順では、ワークフロー モニタ アプリケーションによって使用される追跡データベースを構成する方法を示します。
SQL 追跡データベースを作成するには
Microsoft SQL Server 2005 Express、SQL Server 2000 以降、または SQL Server 2000 Desktop Engine (MSDE) を使用して、SQL クエリ ステートメント
CREATE DATABASE Tracking
で新規データベース Tracking を作成します。メモ ワークフロー アプリケーションで T:System.Workflow.Runtime.Tracking.SqlTrackingService と T:System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService の両方を使用する場合は、永続性と追跡に対して単一のデータベースを使用することをお勧めします。
SQL クエリ アナライザの作業領域で、使用可能なデータベースの一覧から手順 1. で作成したデータベースを選択します。
[ファイル] メニューの [開く] をクリックして、SQL スクリプト %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<言語>\Tracking_Schema.sql を開きます。
[実行] をクリックするか F5 キーを押してクエリを実行し、SQL 追跡サービス テーブルを作成します。
[ファイル] メニューの [開く] をクリックして、SQL スクリプト %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<言語>\Tracking_Logic.sql を開きます。
[実行] をクリックするか F5 キーを押してクエリを実行し、SQL 追跡サービス ストアド プロシージャを作成します。
ホスト アプリケーションの構成
ホスト アプリケーションが SqlTrackingService を使用するように構成するには、サービスの WorkflowRuntime コレクションに SqlTrackingService サービスを追加します。これについては、プログラムで追加する方法と構成ファイルを使用する方法があります。ConnectionString プロパティにサーバー名とデータベースを設定します。モニタが現行データを使用できるように、SqlTrackingService サービスの IsTransactional プロパティを false に設定します (IsTransactional プロパティを true に設定すると、情報はデータベースに書き込まれる前にバッチ処理されます)。
SqlTrackingService サービスをプログラムで追加するには、次のコード例を使用します。
C#:
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
SqlTrackingService sqlTrackingService = new SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;");
sqlTrackingService.IsTransactional = false;
workflowRuntime.AddService(sqlTrackingService);
workflowRuntime.StartRuntime();
Visual Basic:
Dim workflowRuntime As New WorkflowRuntime()
Dim sqlTrackingService As New SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;")
sqlTrackingService.IsTransactional = false
workflowRuntime.AddService(sqlTrackingService)
workflowRuntime.StartRuntime()
構成ファイルを使って SqlTrackingService サービスを追加するには、アプリケーション コードで WorkflowRuntime コンストラクタに構成セクション名を指定し、構成ファイル (たとえば app.config) に WorkflowRuntime 構成情報を含める必要があります。次に例を示します。
ホスト アプリケーション
C#:
WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowRuntimeConfigurationSection");
workflowRuntime.StartRuntime();
Visual Basic:
Dim workflowRuntime As New WorkflowRuntime("WorkflowRuntimeConfigurationSection")
workflowRuntime.StartRuntime()
構成ファイル
<configuration>
<configSections>
<section name="WorkflowRuntimeConfigurationSection" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<WorkflowRuntimeConfigurationSection Name="WorkflowRuntimeConfigurationSectionName" UnloadOnIdle="false">
<Services>
<add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ConnectionString="Initial Catalog=TrackingStore;Data Source=localhost;Integrated Security=SSPI;" IsTransactional="false" UseDefaultProfile="true" />
</Services>
</WorkflowRuntimeConfigurationSection>
</configuration>
モニタ ユーザー インターフェイス
モニタ インターフェイスは、主に 3 つのペインで構成されています。
[Workflows] ペイン
[Activities] ペイン
[Workflow View] ペイン
モニタは、追跡されたすべてのワークフローを読み取ります。コンピュータ名とデータベースを指定するには、[Settings] ダイアログ ボックスを使用します。このダイアログ ボックスを開くには、[Monitor] メニューの [Settings] をクリックするか、または [Settings] ツール バー ボタンをクリックします。
ワークフロー検索オプション ツール バー
このツール バーには、ツールの検索オプションが表示されます。検索は、ステータス発生時にワークフロー ステータスと時間間隔の組み合わせを使用し、データ項目値を追跡することによって行えます。ワークフロー ID を使って検索することもできます。一例として、追跡データ項目 PurchaseAmount の CheckCredit アクティビティの値が 500 の、昨日終了したワークフローを検索できます。
メモ : |
---|
既定では、SqlTrackingService の既定の追跡プロファイルは、すべてのワークフロー、アクティビティ、およびユーザー追跡ポイント イベントを抽出します。ワークフロー追跡データは抽出しません。したがって、既定の追跡プロファイルまたは実行中の特定タイプと関連した追跡プロファイルのいずれかを更新するまでは、[Tracking Data Item] によって検索することができません。このサンプルで提供されている UpdateV1DefaultTrackingProfile.sql という SQL スクリプトを使用して、アクティビティから Name プロパティを抽出するように既定の追跡プロファイルを更新することができます。 これは、追跡プロファイルの次の項目を使って行います。 |
<Extracts>
<WorkflowDataTrackingExtract>
<Member>Name</Member>
</WorkflowDataTrackingExtract>
</Extracts>
[Workflows] ペイン
このペインには、追跡データベース内のすべてのワークフローと、各ワークフローのステータスが表示されます。ワークフローが選択されると、そのワークフローの完了したアクティビティおよび実行中のアクティビティすべての現行ステータスに関して追跡データベースが照会され、それらのアクティビティが [Activity] ペインに表示されます。
[Activities] ペイン
このペインには、[Workflows] ペインで選択したワークフローに関するすべてのアクティビティおよびアクティビティ ステータスが表示されます。
[Workflow View] ペイン
このペインは、Windows Workflow Foundation の一部として付属するワークフロー デザイナ コントロールをホストします。これによって、ユーザーは複合アクティビティを展開および折りたたんだり、ワークフローのビューを (メイン ビュー、例外、イベント、および補正の間で) 切り替えたりすることができます。[Workflow] ペインでワークフローが選択されると、完了したアクティビティすべてがチェック マーク付きで、また現在実行中のアクティビティすべてが [Play] アイコン付きで [Workflow] ペインに表示されます。
メニュー
ワークフロー モニタのメニュー オプションは次のとおりです。
[File] メニュー
[Exit] - プログラムを終了します。
[View] メニュー
[Workflow Details] - 有効な場合、[Workflow] ペインと [Activity] ペインが表示されます。
[Monitor] メニュー
[Start/Stop] - モニタを開始または停止します。
[Settings] - [Settings] ダイアログ ボックスを表示します。
ツール バーのボタン
ワークフロー モニタのツール バーのボタンは次のとおりです。
[Settings] - [Settings] ダイアログ ボックスを表示します (詳しくは、「設定」のセクションを参照してください)。
[Monitor On] - 追跡データベースのモニタを開始します (「モニタの使用」を参照してください)。
[Monitor Off] - 追跡データベースのモニタを停止します (「モニタの使用」を参照してください)。
[Expand All] - ワークフロー ビューの複合アクティビティをすべて展開します。
[Collapse All] - ワークフロー ビューの複合アクティビティをすべて折りたたみます。
[Workflow Zoom Level] - ワークフロー ビューのズーム レベルを設定します。
設定
モニタを構成するには **[Settings]**ダイアログ ボックスを使用します。次のフィールドを指定できます。
[SQL Server] - SQL Server を実行しているローカルまたはリモート コンピュータ。
[Tracking Database] - 追跡情報を格納するために使用されるデータベース。
[Polling Interval] - データベースを再ポーリングするまでの待機ミリ秒数。
[Auto-Select Latest When Polling] - これを選択すると、実行中の最新ワークフローが [Workflows] ペインで自動選択されます。
メモ : |
---|
サーバー名とデータベース名はステータス バーにも表示されます。 |
モニタの使用
ワークフロー モニタは、追跡データベースをポーリングし、ワークフローとアクティビティのステータスをそれぞれ**[Workflows]** ペイン、[Activities] ペインに、ワークフローの進行状況を**[Workflow View]** ペインに自動的に表示します。モニタをオンにするには、[Monitor On] ツール バー ボタンを使用するか、または [Monitor] メニューの [Start] をクリックします。ポーリング間隔を設定するには、[Settings]ダイアログ ボックスを使用します。追跡データベースのモニタ中は、現在実行されている最新のワークフローを表示しておくと便利です。これを行うには、[Settings] ダイアログ ボックスの [Auto-Select Latest When Polling] チェック ボックスをオンにします。
メモ : |
---|
モニタがオンになっているときは、ステータス バーに "Monitoring" と表示されます。 |
ワークフロー モニタは、機能の照会に SqlTrackingQuery API を使用します。ワークフローとアクティビティのリストは、SqlTrackingQuery API を介して得られます。検索機能では SqlTrackingQuery API が使用されます。
同じワークフロー型の複数の定義
SqlTrackingService は、新しいワークフロー型が始めて使用されたときにワークフロー定義を保存します。ただし、定義が変わり、タイプのバージョンはそのまま変わらない場合には、新しいレコードは追跡データベースに保存されません。したがって、モニタは常にワークフロー型の最初の定義を表示します。
ユーザー設定
ワークフロー モニタは設定 (SQL Server、データベース、ポーリング間隔) を、\Documents and Settings\<user>\Local Settings\Application Data\Microsoft Corporation\Windows Workflow Foundation SDK Application Samples\3.0.0.0 というディレクトリにある workflowmonitor.config ファイルに保存します。
関連項目
参照
その他の技術情報
Using the SQLTrackingService
Task 4: Use the Windows Workflow Tracking Service
簡単な追跡のサンプル
アプリケーション サンプル
Copyright © 2007 by Microsoft Corporation.All rights reserved.