Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


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,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。

表2‒50 rapリスナーとのコネクション確立,切断処理でのトレース取得ポイントの詳細

イベントID

図中の番号※1

トレース取得ポイント

付加情報※2

レベル

0x9180

1

rapリスナーへのコネクション確立処理前

要求先の情報(ホスト名,ポート番)

A

0x9181

2

rapリスナーへのコネクション確立処理後(エラー時だけ取得)

内部リターンコード

A

0x9182※3

3

rapリスナーへの接続要求データの送受信後

内部リターンコード

A

0x9183

4

rapリスナーへの切断要求データの送受信前

A

0x9184

5

rapリスナーへの切断要求データの送受信後

内部リターンコード

A

(凡例)

A:標準

−:該当なし

注※1

図2-37中の番号と対応しています。

注※2

Cosminexus Application Serverの性能解析トレースに付加する情報です。

注※3

コネクション確立処理がエラーとなってイベントID0x9181が取得された場合,このイベントIDのトレースは取得されません。

rapリスナーとのコネクション確立,切断処理でのトレース取得ポイントを次の図に示します。

図2‒37 rapリスナーとのコネクション確立,切断処理でのトレース取得ポイント

[図データ]

(b) リモートAPI機能でのAPI代理実行要求

リモートAPI機能でのAPI代理実行要求でのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。

表2‒51 リモートAPI機能でのAPI代理実行要求でのトレース取得ポイントの詳細

イベント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

(凡例)

A:標準

−:該当なし

注※1

図2-38中の番号と対応しています。

注※2

Cosminexus Application Serverの性能解析トレースに付加する情報です。

リモートAPI機能でのAPI代理実行要求でのトレース取得ポイントを次の図に示します。

図2‒38 リモートAPI機能でのAPI代理実行要求でのトレース取得ポイント

[図データ]

(c) スケジュールサーバへのRPC

スケジュールサーバへのRPCでのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。

表2‒52 スケジュールサーバへのRPCでのトレース取得ポイントの詳細

イベント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

(凡例)

A:標準

B:詳細

注※1

図2-39および図2-40中の番号と対応しています。

注※2

Cosminexus Application Serverの性能解析トレースに付加する情報です。

注※3

要求データの送信が正常終了した場合に,このイベントIDのトレースは取得されます。

注※4

SPPまたはスケジュールサーバからの応答データを受け取るコネクションの接続要求の受け付けが正常終了した場合は,接続元情報(IPアドレス,ポート番号)も付加します。

注※5

ネームサーバからの応答データを受け取るコネクションの接続要求の受け付けが正常終了した場合は,接続元情報(IPアドレス,ポート番号)も付加します。

スケジュールサーバへのRPC要求でのトレース取得ポイントを次の図に示します。

図2‒39 スケジュールサーバへのRPC要求でのトレース取得ポイント

[図データ]

ネームサーバへのサービス情報の問い合わせでのトレース取得ポイントを次の図に示します。

図2‒40 ネームサーバへのサービス情報の問い合わせでのトレース取得ポイント

[図データ]

(d) API実行処理

API実行処理でのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。

表2‒53 API実行処理でのトレース取得ポイントの詳細

イベント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

(凡例)

A:標準

−:該当なし

注※1

Cosminexus Application Serverの性能解析トレースに付加する情報です。

注※2

トランザクションの開始時は,トランザクショングローバル識別子,およびトランザクションブランチ識別子も付加します。

(e) XAリソースサービス機能

XAリソースサービス機能でのイベントID,トレース取得ポイント,付加情報およびPRFトレース取得レベルについて,次の表に示します。

表2‒54 XAリソースサービス機能でのトレース取得ポイントの詳細

イベント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

(凡例)

A:標準

−:該当なし

(5) UAPトレースに出力される性能解析トレースの識別情報

TP1/Client/Jでは,TP1/ServerやCosminexusの性能解析トレースの情報と,TP1/Client/Jのトレースの情報を結び付けるために,UAPトレースの出口情報の末尾に,性能解析トレースの識別情報を出力します。

UAPトレースに性能解析トレースの識別情報を出力する,メソッドを次に示します。

なお,性能解析トレースの識別情報は,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