Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Client for .NET Framework 使用の手引


2.9.7 TP1/Serverの性能検証用トレース

TP1/Serverの性能検証用トレース(prfトレース)とは,TP1/Server上で動作する各種サービスの主なイベントのトレース情報です。この性能検証用トレースは,性能検証の効率,およびトラブルシュートの効率を向上させることが目的のトレース情報です。

Client .NETでは,TP1/Serverの性能検証用トレースにClient .NETが設定した性能検証用の識別情報を出力できます。この性能検証用の識別情報は,Client .NETのトレースにも出力されます。これによって,次の利点があります。

〈この項の構成〉

(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: *

(4) トレース情報の取得ポイント

次に示すメソッドを実行するたびに,UAPトレースファイルの出口にトレース情報が取得されます。

Callメソッド,およびCallToメソッドを実行した場合,<rpc>要素のuse属性がscdまたはnamで,かつ<rpc>要素のprfInfoSend属性がtrueのときは,TP1/Serverへ性能検証用の識別情報が伝播されます。