2.11.7 性能解析トレース
性能解析トレース(PRFトレース)情報とは,Cosminexus Application Serverのトレース情報です。性能解析トレースを取得すると,UAP実行時の,一連の処理の流れおよび処理に掛かった時間を知ることができ,性能解析に必要な情報を採取できます。また,障害が発生したときに,処理がどこまで到達したかを知ることができます。
性能解析トレースの概要および使用方法の詳細については,マニュアル「Cosminexus 機能解説」,マニュアル「Cosminexus システム運用ガイド」を参照してください。ここでは,TP1/Client/JをCosminexus Application Server上で動作させた場合の性能解析トレースの使用方法,性能解析トレースの取得情報,およびトレース取得ポイントについて説明します。
- 〈この項の構成〉
(1) Cosminexus Application Serverでの性能解析トレースの出力
TP1/Client/Jでは,TP1/Client/JをCosminexus Application Server上で動作させた場合に,Cosminexus Application Server上で性能解析トレースを出力できます。性能解析トレースは,TP1/Client/Jのトレース取得ポイントで取得されます。性能解析トレースを取得する場合は,TP1/Client/J環境定義にdccltprftrace=Yを指定します。
Cosminexus Application Server上で性能解析トレースを出力する場合,TP1/Client/Jが取得する情報の分だけ,出力される性能解析トレースのサイズが大きくなることを考慮して,性能解析トレースのサイズを指定してください。
(2) Cosminexus Application ServerとOpenTP1とのトレースの照合
TP1/Serverに対して,ネームサービスを使用したRPC,およびスケジューラダイレクト機能を使用したRPCを行う場合は,スケジューラに送信するRPC電文中に,TP1/Client/Jのインスタンスごとにほぼ一意となる識別情報(IPアドレスなど)を付加できます。付加した情報は,OpenTP1の性能検証用トレースで出力します。このOpenTP1の性能検証用トレースと,Cosminexus Application Serverの性能解析トレースとを照合することによって,Cosminexus Application ServerとOpenTP1との間の,一連の処理の流れを知ることができます。また,バージョン07-02以降のTP1/Serverに対して,リモートAPI機能を使用したRPCを行う場合は,スケジューラに送信するRPC電文中への識別情報(IPアドレスなど)を付加できます。
OpenTP1の性能検証用トレースに識別情報を付加する場合は,TP1/Client/J環境定義にdccltprfinfosend=Yを指定します。OpenTP1の性能検証用トレースの詳細については,マニュアル「OpenTP1 解説」を参照してください。
(3) 性能解析トレースの取得情報
TP1/Client/Jで取得した情報は,性能解析トレースの付加情報部分に出力されます。性能解析トレースに取得する情報,およびトレースの出力例を次に示します。
- 性能解析トレースに取得する情報
-
- ノードID:_Jaa(4バイトの英数字)
-
aa:ランダムな2文字の英数字(数字(0〜9)またはアルファベット(A〜Z,a〜z))
- ルート通信通番部分:bbbbbbbb(4バイトの16進数字)
-
bbbbbbbb:IPアドレス
- RPC通信通番:ccccdddd(4バイトの16進数字)
-
cccc:ランダムな2バイトの16進数字
dddd:通信通番
- Cosminexus Application Serverで性能解析トレースを出力する場合の出力例
... OPT ASCII ... 16進表示 _Jaa/0xbbbbbbbb/0xccccdddd...
- OpenTP1の性能検証用トレースに識別情報を付加する場合の出力例
(4) 性能解析トレースのトレース取得ポイント
TP1/Client/Jの性能解析トレースの,トレース取得ポイントの詳細を,処理ごとに説明します。
(a) rapリスナーとのコネクション確立,切断処理
rapリスナーとのコネクション確立,切断処理でのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。
イベントID |
図中の番号※1 |
トレース取得ポイント |
付加情報※2 |
レベル |
---|---|---|---|---|
0x9180 |
1 |
rapリスナーへのコネクション確立処理前 |
要求先の情報(ホスト名,ポート番) |
A |
0x9181 |
2 |
rapリスナーへのコネクション確立処理後(エラー時だけ取得) |
内部リターンコード |
A |
0x9182※3 |
3 |
rapリスナーへの接続要求データの送受信後 |
内部リターンコード |
A |
0x9183 |
4 |
rapリスナーへの切断要求データの送受信前 |
− |
A |
0x9184 |
5 |
rapリスナーへの切断要求データの送受信後 |
内部リターンコード |
A |
rapリスナーとのコネクション確立,切断処理でのトレース取得ポイントを次の図に示します。
(b) リモートAPI機能でのAPI代理実行要求
リモートAPI機能でのAPI代理実行要求でのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。
イベントID |
図中の番号※1 |
トレース取得ポイント |
付加情報※2 |
レベル |
---|---|---|---|---|
0x9190 |
1 |
dc_rpc_callの代理実行の要求処理前 |
− |
A |
0x9191 |
2 |
dc_rpc_callの代理実行の要求処理後 |
内部リターンコード |
A |
0x9192 |
1 |
dc_trn_beginの代理実行の要求処理前 |
− |
A |
0x9193 |
2 |
dc_trn_beginの代理実行の要求処理後 |
内部リターンコード |
A |
0x9194 |
1 |
dc_trn_chained_commitの代理実行の要求処理前 |
− |
A |
0x9195 |
2 |
dc_trn_chained_commitの代理実行の要求処理後 |
内部リターンコード |
A |
0x9196 |
1 |
dc_trn_chained_rollbackの代理実行の要求処理前 |
− |
A |
0x9197 |
2 |
dc_trn_chained_rollbackの代理実行の要求処理後 |
内部リターンコード |
A |
0x9198 |
1 |
dc_trn_unchained_commitの代理実行の要求処理前 |
− |
A |
0x9199 |
2 |
dc_trn_unchained_commitの代理実行の要求処理後 |
内部リターンコード |
A |
0x919A |
1 |
dc_trn_unchained_rollbackの代理実行の要求処理前 |
− |
A |
0x919B |
2 |
dc_trn_unchained_rollbackの代理実行の要求処理後 |
内部リターンコード |
A |
リモートAPI機能でのAPI代理実行要求でのトレース取得ポイントを次の図に示します。
(c) スケジュールサーバへのRPC
スケジュールサーバへのRPCでのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。
イベントID |
図中の番号※1 |
トレース取得ポイント |
付加情報※2 |
レベル |
---|---|---|---|---|
0x91C0 |
1 |
スケジュールサーバへのコネクション確立処理前 |
サービス要求先ホストの情報(ホスト名,ポート番号) |
A |
0x91C1 |
2 |
スケジュールサーバへのRPCのサービス要求処理の実行後 |
内部リターンコード |
A |
0x91C2※3 |
3 |
SPPまたはスケジュールサーバからの応答データを受け取るコネクションの接続要求を受け付け後 |
内部リターンコード※4 |
A |
0x91C3 |
4 |
ネームサーバへのコネクション確立処理前 |
サービス要求先ホストの情報(ホスト名,ポート番号) |
B |
0x91C4 |
5 |
ネームサーバへのサービス情報の問い合わせ処理の実行後 |
内部リターンコード |
B |
0x91C5※3 |
6 |
ネームサーバからの応答データを受け取るコネクションの接続要求受け付け後 |
内部リターンコード※5 |
B |
スケジュールサーバへのRPC要求でのトレース取得ポイントを次の図に示します。
ネームサーバへのサービス情報の問い合わせでのトレース取得ポイントを次の図に示します。
(d) API実行処理
API実行処理でのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。
イベントID |
トレース取得ポイント |
付加情報※1 |
レベル |
---|---|---|---|
0x91D0 |
openConnectionメソッドの入り口 |
− |
A |
0x91D1 |
openConnectionメソッドの出口 |
内部リターンコード |
A |
0x91D2 |
closeConnectionメソッドの入り口 |
− |
A |
0x91D3 |
closeConnectionメソッドの出口 |
内部リターンコード |
A |
0x91D4 |
rpcCallメソッドの入り口 |
inlen |
A |
0x91D5 |
rpcCallメソッドの出口 |
outlen,内部リターンコード |
A |
0x91D6 |
rpcCallToメソッドの入り口 |
inlen |
A |
0x91D7 |
rpcCallToメソッドの出口 |
outlen,内部リターンコード |
A |
0x91D8 |
trnBeginメソッドの入り口 |
− |
A |
0x91D9 |
trnBeginメソッドの出口 |
内部リターンコード※2 |
A |
0x91DA |
trnChainedCommitメソッドの入り口 |
− |
A |
0x91DB |
trnChainedCommitメソッドの出口 |
内部リターンコード※2 |
A |
0x91DC |
trnChainedRollbackメソッドの入り口 |
− |
A |
0x91DD |
trnChainedRollbackメソッドの出口 |
内部リターンコード※2 |
A |
0x91DE |
trnUnchainedCommitメソッドの入り口 |
− |
A |
0x91DF |
trnUnchainedCommitメソッドの出口 |
内部リターンコード |
A |
0x91E0 |
trnUnchainedRollbackメソッドの入り口 |
− |
A |
0x91E1 |
trnUnchainedRollbackメソッドの出口 |
内部リターンコード |
A |
(e) XAリソースサービス機能
XAリソースサービス機能でのイベントID,トレース取得ポイント,付加情報およびPRFトレース取得レベルについて,次の表に示します。
イベントID |
トレース取得ポイント |
付加情報 |
レベル |
---|---|---|---|
0x919C |
TP1/Client/JからのXAトランザクションのstart要求の代理実行要求処理前 |
内部コード |
A |
0x919D |
TP1/Client/JからのXAトランザクションのstart要求の代理実行要求処理後 |
内部リターンコード |
A |
0x919E |
TP1/Client/JからのXAトランザクションのend要求の代理実行要求処理前 |
− |
A |
0x919F |
TP1/Client/JからのXAトランザクションのend要求の代理実行要求処理後 |
内部リターンコード |
A |
0x91A0 |
TP1/Client/JからのXAトランザクションのprepare要求の代理実行要求処理前 |
− |
A |
0x91A1 |
TP1/Client/JからのXAトランザクションのprepare要求の代理実行要求処理後 |
内部リターンコード |
A |
0x91A2 |
TP1/Client/JからのXAトランザクションのcommit要求の代理実行要求処理前 |
− |
A |
0x91A3 |
TP1/Client/JからのXAトランザクションのcommit要求の代理実行要求処理後 |
内部リターンコード |
A |
0x91A4 |
TP1/Client/JからのXAトランザクションのrollback要求の代理実行要求処理前 |
− |
A |
0x91A5 |
TP1/Client/JからのXAトランザクションのrollback要求の代理実行要求処理後 |
内部リターンコード |
A |
0x91A6 |
TP1/Client/JからのXAトランザクションのforget要求の代理実行要求処理前 |
− |
A |
0x91A7 |
TP1/Client/JからのXAトランザクションのforget要求の代理実行要求処理後 |
内部リターンコード |
A |
0x91A8 |
TP1/Client/JからのXAトランザクションのrecover要求の代理実行要求処理前 |
− |
A |
0x91A9 |
TP1/Client/JからのXAトランザクションのrecover要求の代理実行要求処理後 |
内部リターンコード |
A |
0x91AA |
TP1/Client/JからのXAトランザクションのRPC要求の代理実行要求処理前 |
− |
A |
0x91AB |
TP1/Client/JからのXAトランザクションのRPC要求の代理実行要求処理後 |
内部リターンコード |
A |
0x91E2 |
TP1 ConnectorからのXAトランザクションのstart要求受け付け直後 |
内部コード |
A |
0x91E3 |
TP1 ConnectorからのXAトランザクションのstart要求応答直前 |
内部リターンコード |
A |
0x91E4 |
TP1 ConnectorからのXAトランザクションのend要求受け付け直後 |
内部コード |
A |
0x91E5 |
TP1 ConnectorからのXAトランザクションのend要求応答直前 |
内部リターンコード |
A |
0x91E6 |
TP1 ConnectorからのXAトランザクションのprepare要求受け付け直後 |
内部コード |
A |
0x91E7 |
TP1 ConnectorからのXAトランザクションのprepare要求応答直前 |
内部リターンコード |
A |
0x91E8 |
TP1 ConnectorからのXAトランザクションのcommit要求受け付け直後 |
内部コード |
A |
0x91E9 |
TP1 ConnectorからのXAトランザクションのcommit要求応答直前 |
内部リターンコード |
A |
0x91EA |
TP1 ConnectorからのXAトランザクションのrollback要求受け付け直後 |
内部コード |
A |
0x91EB |
TP1 ConnectorからのXAトランザクションのrollback要求応答直前 |
内部リターンコード |
A |
0x91EC |
TP1 ConnectorからのXAトランザクションのforget要求受け付け直後 |
内部コード |
A |
0x91ED |
TP1 ConnectorからのXAトランザクションのforget要求応答直前 |
内部リターンコード |
A |
0x91EE |
TP1 ConnectorからのXAトランザクションのrecover要求受け付け直後 |
内部コード |
A |
0x91EF |
TP1 ConnectorからのXAトランザクションのrecover要求応答直前 |
内部リターンコード |
A |
0x91F0 |
TP1 ConnectorからのXAトランザクションのRPC要求受け付け直後 |
内部コード |
A |
0x91F1 |
TP1 ConnectorからのXAトランザクションのRPC要求応答直前 |
内部リターンコード |
A |
(5) UAPトレースに出力される性能解析トレースの識別情報
TP1/Client/Jでは,TP1/ServerやCosminexusの性能解析トレースの情報と,TP1/Client/Jのトレースの情報を結び付けるために,UAPトレースの出口情報の末尾に,性能解析トレースの識別情報を出力します。
UAPトレースに性能解析トレースの識別情報を出力する,メソッドを次に示します。
-
openConnection()
-
openConnection(String host, int port)
-
closeConnection()
-
rpcCall(String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)
-
rpcCall(String group, String service, byte[] in_data, byte[] out_data, int flags)
-
rpcCallTo(DCRpcBindTbl direction, String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)
-
trnBegin()
-
trnChainedCommit()
-
trnUnchainedCommit()
-
trnChainedRollback()
-
trnUnchainedRollback()
なお,性能解析トレースの識別情報は,TP1/Client/J環境定義dccltprfinfosendオペランドの指定値に関係なく出力されます。
性能解析トレースの識別情報を出力した,UAPトレースの出力例を次に示します。太字で示す部分が,性能解析トレースの識別情報です。
2008/09/01 16:37:24.698 Location = Out ThreadName = main MethodName = TP1Client.rpcCall Exception = ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef 00000000 00 00 00 1c 53 75 7a 75 6b 69 00 00 00 00 00 00 ....Suzuki...... 00000010 00 00 00 00 00 00 00 00 00 00 00 00 51 00 00 00 ............Q... 00000020 5f 4a 30 6d 2f 30 78 30 61 64 31 30 66 37 63 2f _J0m/0x0ad10f7c/ 00000030 30 78 32 62 35 64 30 30 30 31 0x2b5d0001