|
『WebLogic Integration Administration Console の使用』の節「システム管理について」で説明しているように、レポート データベース テーブルには、プロセスの実行中に発生するイベントに関する情報が格納されます。「プロダクション データベースのコンフィグレーション」での説明のとおり、これらのテーブルは、wli_archive.sql
ファイルの SQL コマンドによって作成されます。
レポート データベースからレポートを生成するには、SQL クエリを実行する必要があります。この節では、有用なテーブルについて説明し、サンプル クエリを示します。
プロセスが実行されると、その実行を追跡するイベントが生成されます。生成されるイベントは、コンフィグレーションされているトラッキング レベルによって異なります (『WebLogic Integration Administration Console の使用』の節「プロセス トラッキング データの管理」を参照)。たとえば、プロセスのトラッキング レベルが [Full] または [Node] に設定されている場合は、ノードごとに開始ノードと終了 (または中止) ノードという 2 つのイベントが生成されます。
プロセス トラッキング データがレポート データベースに転送される場合、各イベントは WLI_PROCESS_EVENT_ARCH
テーブルに行として格納されます。行には、プロセス名 (URI 値)、プロセス インスタンス ID、プロセス イベント タイプ (「com.bea.wli.management.archiving.TrackingEventType」を参照)、およびその他の値が格納されます。
PROCESS_LABEL
カラムは、次の呼び出しによって生成されるイベントに対してのみ設定されます。
JpdContext.setProcessLabel(String)
JpdContext.trackData(
payload
)
メソッドを呼び出すと、タイプが EVENT_TYPE_PROCESS_LOG
のイベントが生成されます。データがレポート データベースに転送される場合、各イベントは、WLI_DOCUMENT_DATA
テーブルに新しい行として格納されます。このテーブルの DATA
カラムに payload
が格納され、EVENT_DATA_ID
カラムに WLI_PROCESS_EVENT_ARCH
テーブル内のイベントへのリンクが設定されます。
trackData()
の結果のほかに、WLI_DOCUMENT_DATA
テーブルには、プロセス インスタンスによって生成された未処理の例外とビジネス メッセージのペイロード (ビジネス メッセージが追跡される場合) が格納されます。
WLI_DOCUMENT_DATA.TYPE
の有効タイプは、「com.bea.wli.management.archiving.DocumentDataType」に定義されています。
trackData()
メソッドについては、WebLogic Workshop ヘルプの「JpdContext Interface」を参照。
注意 : | 各イベント タイプの定数フィールド値については、「com.bea.wli.management.archiving.TrackingEventType」を参照してください。たとえば、この後のサンプルでは、3 は EVENT_TYPE_PROCESS_ACTIVITY_END に該当し、20 は EVENT_TYPE_PROCESS_LOG に該当します。 |
特定の日における特定のプロセスの平均経過時間を取得するための SQL は次のとおりです。
SELECT AVG(EVENT_ELAPSED_TIME) FROM WLI_PROCESS_EVENT_ARCH
WHERE PROCESS_TYPE =PROC_TYPE
AND ACTIVITY_ID = 0
AND EVENT_TYPE = 3
AND (EVENT_TIME >=START_TIME
AND EVENT_TIME <END_TIME
)
AND DEPLOYMENT_ID IN
(SELECT MAX(DEPLOYMENT_ID)
FROM WLI_PROCESS_EVENT_ARCH
WHERE PROCESS_TYPE =PROC_TYPE
)
このクエリの PROC_TYPE
を WLI_PROCESS_EVENT_ARCH
テーブルの値に置き換え、START_TIME
と END_TIME
にリテラル タイムスタンプを指定します。
特定の日における特定のプロセスの特定のノードでの平均経過時間を取得するための SQL は次のとおりです。
SELECT AVG(WPEA.EVENT_ELAPSED_TIME)
FROM WLI_PROCESS_EVENT_ARCH WPEA, WLI_PROCESS_DEF_ARCH WPDA
WHERE WPEA.PROCESS_TYPE =PROC_TYPE
AND WPEA.EVENT_TYPE = 3
AND (WPEA.EVENT_TIME >=START_TIME
and WPEA.EVENT_TIME <END_TIME
)
AND WPEA.PROCESS_TYPE = WPDA.PROCESS_TYPE
AND WPEA.ACTIVITY_ID = WPDA.ACTIVITY_ID
AND WPEA.DEPLOYMENT_ID = WPDA.DEPLOYMENT_ID
AND WPDA.USER_NODE_NAME =NODE_NAME
AND WPDA.DEPLOYMENT_ID IN
(SELECT MAX(DEPLOYMENT_ID) FROM WLI_PROCESS_DEF_ARCH
WHERE PROCESS_TYPE = PROC_TYPE)
このクエリの PROC_TYPE
と NODE_NAME
を WLI_PROCESS_EVENT_ARCH
テーブルの値に置き換え、START_TIME
と END_TIME
にリテラル タイムスタンプを指定します。
特定のプロセス タイプに対するすべての trackData()
呼び出しの結果を取得するための SQL は次のとおりです。
SELECT WDD.DATA, WDD.TYPE, WPEA.PROCESS_INSTANCE
FROM WLI_DOCUMENT_DATA WDD, WLI_PROCESS_EVENT_ARCH WPEA
WHERE WDD.EVENT_DATA_ID = WPEA.EVENT_DATA_ID
AND WPEA.PROCESS_TYPE =PROC_TYPE
AND WPEA.EVENT_TYPE = 20
このクエリの PROC_TYPE
を WLI_PROCESS_EVENT_ARCH
テーブルの値に置き換えます。