Hitachi

uCosminexus Service Coordinator Interactive Workflow システム構築・運用ガイド


付録L.3 アプリケーション呼び出しサービスの性能調査

〈この項の構成〉

(1) アプリケーション呼び出しサービスのトレースの見方

アプリケーション呼び出しサービスは,親スレッドと子スレッド(WorkManagerのスレッド)が動作します。アプリケーション呼び出しサービスが作業を処理した時(あるref識別子またはグループが実行間隔を満たした時)のトレースを次の図に示します。

図L‒5 アプリケーション呼び出しサービスのトレース

[図データ]

図に示すとおり,親スレッドのトレースと子スレッドのトレースは包含関係にあります。図では親スレッドにピンク色を,子スレッドに黄色と緑色を付けています。

親スレッドのトレース

1つのアプリケーション呼び出しサービス(EAR)につき,親スレッドは同時に1つ動作します。あるref識別子またはグループが実行間隔を満たしていて親スレッドが処理を開始すると「mark timeout start」が出力されます。子スレッドによる処理の後,親スレッドが処理を終了すると「mark timeout end」が出力されます。

メモ

mark timeout start」は実行間隔内で処理対象となる作業数が1件以上の時に出力され,0件の時は出力されません。「mark timeout end」は常に出力されます。

子スレッドのトレース

1つのアプリケーション呼び出しサービス(EAR)につき,子スレッドは同時にWorkManagerの最大スレッド数分動作します。複数スレッドのトレースが混ざって出力されるため,同一スレッドのトレースを対応づけるように注意してください。「pid」と「tid」が一致する行が同一スレッドです。

子スレッドが作業1件の処理を開始すると「mark KDIW63604-I The application call was initiated.」が出力され,終了すると「mark call-application success」が出力されます。

また,RESTアプリケーションへのリクエスト送信時に「call Client#method()」が出力され,レスポンス受信時に「return Client#method()」が出力されます。

メモ

RESTアプリケーションへのリクエスト送信時およびレスポンス受信時に出力するmessage(トレース詳細)の内容は,Cosminexus V11 推奨モードの場合は「Client#method()」,V9互換モードの場合は「Client#handle()」となります。

(2) 実行間隔ごと(最大作業件数ごと)の処理時間を調べる

あるref識別子またはグループについて,実行間隔ごと(最大作業件数ごと)の処理時間を調べるには,親スレッドの処理開始「mark timeout start」と処理終了「mark timeout end」の時刻の差分を取ります。親スレッドのトレースの例を次の図に示します。

図L‒6 親スレッドのトレースの例

[図データ]

図では実行間隔ごと(最大作業件数ごと)の処理時間は755ミリ秒です。また,付加情報として,処理対象の作業件数や,ロック識別子(ref識別子またはグループの名称を含む)を出力しているため,最大作業件数(WorkItemMax)が適切か確認したり,ref識別子またはグループごとに集計したりできます。

メモ

実行間隔ごと(最大作業件数ごと)の処理時間が障害復旧間隔(RecoveryTime)を超えると2重呼び出しのおそれがあるため,超えないようにしてください。障害復旧間隔を超えた場合,アプリケーション呼び出しサービスのメッセージファイルに警告メッセージKDIW63614-Wが出力されます。

(3) RESTアプリケーションのレスポンス時間を調べる

RESTアプリケーションのレスポンス時間を調べる場合は,子スレッドの「call Client#method()」と「return Client#method()」の時刻の差分を取ります。同一スレッドのトレースの対応づけについては,「(1) アプリケーション呼び出しサービスのトレースの見方」を参照してください。子スレッドのトレースの例を次の図に示します。

図L‒7 子スレッドのトレースの例

[図データ]

図ではRESTアプリケーションのレスポンス時間は1ミリ秒です。また,付加情報として,処理対象の作業(案件IDと作業ID)や作業者ID(IWTOPE_<ref識別子>)が出力されるため,特定の作業について調べたり,ref識別子ごとに集計したりできます。