2.9.7 TP1/Serverの性能検証用トレース
TP1/Serverの性能検証用トレース(prfトレース)とは,TP1/Server上で動作する各種サービスの主なイベントのトレース情報です。この性能検証用トレースは,性能検証の効率,およびトラブルシュートの効率を向上させることが目的のトレース情報です。
Client .NETでは,TP1/Serverの性能検証用トレースにClient .NETが設定した性能検証用の識別情報を出力できます。この性能検証用の識別情報は,Client .NETのトレースにも出力されます。これによって,次の利点があります。
-
Client .NETのメソッドの実行時間(UAPトレースによって取得)と,TP1/Serverのサービスの実行時間(性能検証用トレースによって取得)との照合ができます。
-
障害が発生したときに,処理がどこまで到達したかを知ることができます。
- 〈この項の構成〉
(1) TP1/Serverへの性能検証用の識別情報の伝播
TP1/Serverへ性能検証用の識別情報を伝播する場合は,<tp1Server>要素のprfInfoSend属性にtrueを指定します。TP1/Serverのバージョンが03-03以降の場合に,性能検証用の識別情報を伝播できます。また,バージョン07-02以降のTP1/Serverに対して,リモートAPI機能を使用したRPCを行う場合は,スケジューラに送信するRPCメッセージ中への識別情報(IPアドレスなど)を付加できます。
- 注意事項
-
スケジューラダイレクト機能を使用したRPCでサービス要求先のTP1/Serverのバージョンが03-03未満である場合,RPCを行ったときに,SPPのサービス関数に不正なデータを渡す可能性があります。したがって,この場合,TP1/Server上へ性能検証用の識別情報を伝播しないでください(<tp1Server>要素のprfInfoSend属性にfalseを指定してください)。
なお,ネームサービス機能を使用したRPCでサービス要求先のTP1/Serverのバージョンが03-03未満である場合,TP1/Server上へ性能検証用の識別情報を伝播するように設定しても,この設定は無視されるため性能検証用の識別情報は伝播できません。
(2) TP1/ServerとClient .NETとのトレースの照合
TP1/Serverに対して,ネームサービスを使用したRPC,およびスケジューラダイレクト機能を使用したRPCを行う場合は,スケジューラに送信するRPCメッセージ中に,TP1Clientクラスのインスタンスごとにほぼ一意となる識別情報(IPアドレスなど)を付加できます。付加した情報は,Client .NETのトレースに出力されます。また,これと同じ情報はTP1/Serverの性能検証用トレースにも出力されます。
このClient .NETのトレースと,TP1/Serverの性能検証用トレースとを照合することによって,Client .NETとTP1/Serverとの間の,一連の処理の流れを知ることができます。ただし,TP1/Serverに対して,リモートAPI機能を使用したRPCを行う場合は,スケジューラに送信するRPCメッセージ中への識別情報(IPアドレスなど)の付加はできません。
(3) 性能検証用の識別情報
Client .NETの性能検証用の識別情報は,Client .NETのトレース,およびTP1/Serverの性能検証用トレースに出力されます。出力例を次に示します。
(a) 性能検証用の識別情報として取得する情報
- ノードID:_N[bb](4バイトの英数字)
-
bb:ランダムな2文字の英数字(数字(0〜9)またはアルファベット(A〜Z,a〜z))
- ルート通信通番:[xxxxxxxx](4バイトの16進表示のデータ)
-
xxxxxxxx:IPアドレス
- RPC通信通番:[yyyy][zzzz](4バイトの16進表示のデータ)
-
yyyy:ランダムな2バイトの16進数字
zzzz:通信通番(該当するAPIの呼び出しごとにインクリメントされます)
(b) Client .NETのトレースファイルの出力例
- UAPトレースファイル(取得ポイントは,TP1ClientクラスのCallメソッドの出口)
2005/11/11 14:02:38.631 Location = Out ThreadInfo = Test[3244],[2156] MethodName = TP1Client.Call Exception = PrfInfo = _N[bb]/0x[xxxxxxxx]/0x[yyyy][zzzz] [Information]
- エラートレースファイル(取得ポイントは,TP1ClientクラスのCallメソッドの出口)
(Test[2700],[2860]) 2005/11/11 15:06:00.108 KFCA32302-E 例外が発生しました。 保守情報=-7632, 例外=ErrClientTimedOutException(PrfInfo=_N[bb]/0x[xxxxxxxx]/0x[yyyy][zzzz]), メソッド=TP1Client.Call(TP1Client.Call)
(c) TP1/Serverの性能検証用トレースファイルの出力例
PRF: Rec Node: smpl Run-ID: 0x43742533 Process: 1952 Trace: 1 Event: 0x2002 Time: 2005/11/11 14:02:36 583.000.000 Server-name: _scd Rc: *********** Client: - 0x[yyyy][zzzz] Server: **** Root: _N[bb] - 0x[xxxxxxxx] Svc-Grp: echo_svg Svc: echo1 Trn: *