Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説

[目次][用語][索引][前へ][次へ]

付録A.3 TP1/Client/Jの障害対策

TP1/Client/Jのトラブルシュート機能で取得できるトレースの種類を次の表に示します。

トレースの種類 出力先
UAPトレース ファイルに出力されます。
データトレース ファイルに出力されます。
エラートレース ファイルに出力されます。
メモリトレース CUPで用意したString型の配列に格納されます。
メソッドトレース ファイルに出力されます。
デバッグトレース TP1/Client/Jのメモリ内に取得されます。
なお,TP1/Client/Jの提供するメソッドが例外を返した場合は,ファイルまたは標準出力に出力されます。
性能解析トレース サービスプラットフォーム上に出力されます。
性能検証用トレース TP1/Server上に出力されます。

トレースを出力する場合,環境変数TZにタイムゾーンを設定してください。設定していないと,トレース情報の時刻が正しく出力されません。

<この項の構成>
(1) トレースファイルの出力内容
(2) UAPトレース
(3) データトレース
(4) エラートレース
(5) メソッドトレース
(6) デバッグトレース
(7) 性能解析トレース

(1) トレースファイルの出力内容

ファイルに出力されるトレースは,出力先ディレクトリなどを変更できます。トレースファイルに指定できるオプションと出力ファイル名を次の表に示します。また,ファイル出力ディレクトリを変更するためのTP1/Client/J環境定義のオペランド名も次の表に示します。

表A-6 トレースファイルのオプションとファイル名

トレースファイル オプション ファイル出力先指定方法※1 出力ファイル名※2
UAPトレース
  • ファイル出力ディレクトリ
  • トレースファイルのサイズ
dcuaptracepathオペランド DCUAP1.TRC
DCUAP2.TRC
データトレース
  • ファイル出力ディレクトリ
  • トレースファイルのサイズ
  • データの最大サイズ
dcdatatracepathオペランド DCDAT1.TRC
DCDAT2.TRC
エラートレース
  • ファイル出力ディレクトリ
  • トレースファイルのサイズ
dcerrtracepathオペランド DCERR1.TRC
DCERR2.TRC
メソッドトレース
  • ファイル出力ディレクトリ
  • トレースファイルのサイズ
dcmethodtracepathオペランド DCMTD1.TRC
DCMTD2.TRC

注※1
指定したディレクトリがない場合,および指定したディレクトリに書き込み権限がない場合は,トレースファイルを出力できません。

注※2
指定したファイル出力先ディレクトリに出力ファイル名のファイルがない場合は,該当するディレクトリにトレースファイルを作成します。
ファイルへの書き込みは追加モードで実行されます。
2つのトレースファイルはラウンドロビン方式で使用されます。指定したトレースファイルのサイズを超えた書き込みが発生すると,ファイルの切り替えを行い,次のファイルの先頭から書き込みを再開します。

複数のCUPのトレースファイルの出力先に同じディレクトリを指定すると,複数のCUPのトレース情報が混在し,トラブルシュートが困難になります。そのため,トレースファイル出力先ディレクトリはそれぞれのCUPで別々にすることをお勧めします。

また,1つのトレースデータの出力サイズによっては,指定したトレースファイルのサイズよりファイルサイズが大きくなる場合があります。

(2) UAPトレース

UAPトレース情報は,TP1/Client/J環境定義のdcuaptracepathオペランドで指定したディレクトリに,DCUAP1.TRCおよびDCUAP2.TRCというファイル名で出力されます。ファイルのサイズは,TP1/Client/J環境定義のdcuaptracesizeオペランドで指定します。

UAPトレースは,TP1/Client/Jが提供するメソッドの開始時と終了時に次の情報を取得します。

なお,送受信データ長が60バイトを超える場合は先頭の60バイトを取得します。

UAPトレースファイルの出力形式を次に示します。

 
yyyy/mm/dd hh:mm:ss.uuu Location = lll ThreadName = ttt
MethodName = nnnnnnnnnnnnnnnnnnnn
Exception = eeeeeeeeeeeeeeeeeeee
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 73 61 69 73 70 70 00 00 00 00 00 00 00 00 00 00 saispp..........
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 
00000020 73 61 69 73 76 72 30 31 00 00 00 00 00 00 00 00 saisvr01........
:         :        :
 

各種情報に出力する情報は,メソッドおよび取得するタイミングによって異なります。

(3) データトレース

データトレース情報は,TP1/Client/J環境定義のdcdatatracepathオペランドで指定したディレクトリに,DCDAT1.TRCおよびDCDAT2.TRCというファイル名で出力されます。ファイルのサイズは,TP1/Client/J環境定義のdcdatatracesizeオペランドで指定します。1トレースのデータサイズは,TP1/Client/J環境定義のdcdatatracemaxsizeオペランドで指定します。

データトレースは,CUPとTP1/Server間の送受信メッセージの内容を取得します。

データトレースファイルへの出力形式を次に示します。

 
yyyy/mm/dd hh:mm:ss.uuu Event = eeee ThreadName = ttt
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 07 70 c0 00 00 00 00 5c 00 00 00 00 00 06 00 05 .p.....\........
00000010 00 00 00 10 00 00 00 00 00 00 00 00 15 bf 00 00 ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 ................
:         :        :
 

(4) エラートレース

エラートレース情報は,TP1/Client/J環境定義のdcerrtracepathオペランドで指定したディレクトリに,DCERR1.TRCおよびDCERR2.TRCというファイル名で出力されます。ファイルのサイズは,TP1/Client/J環境定義のdcerrtracesizeオペランドで指定します。

エラートレースは,TP1/Client/Jが検知した障害をメッセージ形式でファイルに記録します。メソッド実行中に障害が発生した場合,その原因は例外として報告されますが,それだけでは原因を特定できない場合があります。エラートレースを取得すると,詳細なエラー情報がファイルに出力され,原因調査の資料として使用できます。

エラートレースファイルの出力形式を次に示します。

 
(ttt)yyyy/mm/dd hh:mm:ss.uuu eeeeeeeeeeee
 

(5) メソッドトレース

メソッドトレース情報は,TP1/Client/J環境定義のdcmethodtracepathオペランドで指定したディレクトリに,DCMTD1.TRCおよびDCMTD2.TRCというファイル名で出力されます。ファイルのサイズは,TP1/Client/J環境定義のdcmethodtracesizeオペランドで指定します。

TP1Clientクラス内では多くの内部メソッドが実行されます。メソッドトレースは,これらの内部メソッドの実行順序や実行時刻をファイルに出力します。Java環境では障害時に取得できる情報が少ないため,どのような内部処理の延長で障害が発生したかを原因調査の材料にします。

メソッドトレースファイルの出力形式を次に示します。

 
yyyy/mm/dd hh:mm:ss.uuu Location = lll ThreadName = ttt
MethodName = nnnnnnnnnnnnnnnnnnnn
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 00 00 00 00 c7 0b 49 17 00 00 00 00 00 06 00 05 ......|.........
 

(6) デバッグトレース

デバッグトレース情報は,通常TP1/Client/J内のメモリバッファに取得され,例外を返した場合だけデバッグトレースファイルに出力されます。デバッグトレースファイルは,Java VMを実行するユーザのホームディレクトリ下のTP1clientJディレクトリに,dcCltXXXXXXXXXXXX.dmp(XXXXXXXXXXXX:タイムスタンプ)というファイル名で出力します。

デバッグトレースファイルを出力する時点で,デバッグトレースファイルの総数が,TP1/Client/J環境定義のdccltdbgtrcfilecountオペランドで指定したファイル数を超える場合は,更新日時の最も古いファイルを削除します。デバッグトレースファイルの総数が,(dccltdbgtrcfilecountオペランドで指定したファイル数−1)となるまで既存のデバッグトレースファイルを削除します。

CUPをJavaアプレットとして動作させる場合,古いデバッグトレースファイルの削除に失敗した場合など,デバッグトレースをファイルに出力できないときは,標準出力に出力します。標準出力に出力された場合,ブラウザなどの機能でJavaコンソールを開けば,デバッグトレース情報を参照できます。

デバッグトレースの出力形式を次に示します。

 
(ttt)yyyy/mm/dd hh:mm:ss.uuu MethodName = nnnnnnnnnnnnnnnnnnnn(ii) Location = lll
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 00 00 00 00 c7 0b 49 17 00 00 00 00 00 06 00 05 ......|.........
 

(7) 性能解析トレース

性能解析トレース(PRFトレース)情報とは,サービスプラットフォームのトレース情報です。性能解析トレースを取得すると,UAP実行時の,一連の処理の流れおよび処理に掛かった時間を知ることができ,性能解析に必要な情報を採取できます。また,障害が発生したときに,処理がどこまで到達したかを知ることができます。

性能解析トレースの概要および使用方法の詳細については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。ここでは,次に示す事項について説明します。

(a) サービスプラットフォームでの性能解析トレースの出力

TP1/Client/Jでは,TP1/Client/Jをサービスプラットフォーム上で動作させた場合に,サービスプラットフォーム上で性能解析トレースを出力できます。性能解析トレースは,TP1/Client/Jのトレース取得ポイントで取得されます。性能解析トレースを取得する場合は,TP1/Client/J環境定義にdccltprftrace=Yを指定します。

サービスプラットフォーム上で性能解析トレースを出力する場合,TP1/Client/Jが取得する情報の分だけ,出力される性能解析トレースのサイズが大きくなることを考慮して,性能解析トレースのサイズを指定してください。

(b) サービスプラットフォームとOpenTP1とのトレースの照合

TP1/Serverに対して,ネームサービスを使用したRPC,およびスケジューラダイレクト機能を使用したRPCを行う場合は,スケジューラに送信するRPC電文中に,TP1/Client/Jのインスタンスごとにほぼ一意となる識別情報(IPアドレスなど)を付加できます。付加した情報は,OpenTP1の性能検証用トレースで出力します。このOpenTP1の性能検証用トレースと,サービスプラットフォームの性能解析トレースとを照合することによって,サービスプラットフォームとOpenTP1との間の,一連の処理の流れを知ることができます。また,バージョン07-02以降のTP1/Serverに対して,リモートAPI機能を使用したRPCを行う場合は,スケジューラに送信するRPC電文中への識別情報(IPアドレスなど)を付加できます。

OpenTP1の性能検証用トレースに識別情報を付加する場合は,TP1/Client/J環境定義にdccltprfinfosend=Yを指定します。OpenTP1の性能検証用トレースの詳細については,マニュアル「OpenTP1 解説」を参照してください。

(c) 性能解析トレースの取得情報

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:通信通番

サービスプラットフォームで性能解析トレースを出力する場合の出力例
 
...    OPT       ASCII
...    16進表示  _Jaa/0xbbbbbbbb/0xccccdddd...
 

OpenTP1の性能検証用トレースに識別情報を付加する場合の出力例
   
[図データ]
(d) 性能解析トレースのトレース取得ポイント

TP1/Client/Jの性能解析トレースの,トレース取得ポイントの詳細を,処理ごとに説明します。

●rapリスナーとのコネクション確立,切断処理
rapリスナーとのコネクション確立,切断処理でのイベントID,トレース取得ポイント,付加情報および性能解析トレース取得レベルについて,次の表に示します。

表A-8 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
図A-6 rapリスナーとのコネクション確立,切断処理でのトレース取得ポイント」中の番号と対応しています。

注※2
サービスプラットフォームの性能解析トレースに付加する情報です。

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

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

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

[図データ]

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

表A-9 リモート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
図A-7 リモートAPI機能でのAPI代理実行要求でのトレース取得ポイント」中の番号と対応しています。

注※2
サービスプラットフォームの性能解析トレースに付加する情報です。

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

図A-7 リモートAPI機能でのAPI代理実行要求でのトレース取得ポイント

[図データ]

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

表A-10 スケジュールサーバへの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
図A-8 スケジュールサーバへのRPC要求でのトレース取得ポイント」および「図A-9 ネームサーバへのサービス情報の問い合わせでのトレース取得ポイント」中の番号と対応しています。

注※2
サービスプラットフォームの性能解析トレースに付加する情報です。

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

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

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

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

図A-8 スケジュールサーバへのRPC要求でのトレース取得ポイント

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

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

[図データ]

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

表A-11 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
サービスプラットフォームの性能解析トレースに付加する情報です。

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

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

表A-12 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:「標準」であることを示します。
−:該当しません。

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

TP1/Client/Jでは,TP1/Serverやサービスプラットフォームの性能解析トレースの情報と,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