Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説
TP1/Client/Jのトラブルシュート機能で取得できるトレースの種類を次の表に示します。
トレースの種類 | 出力先 |
---|---|
UAPトレース | ファイルに出力されます。 |
データトレース | ファイルに出力されます。 |
エラートレース | ファイルに出力されます。 |
メモリトレース | CUPで用意したString型の配列に格納されます。 |
メソッドトレース | ファイルに出力されます。 |
デバッグトレース | TP1/Client/Jのメモリ内に取得されます。 なお,TP1/Client/Jの提供するメソッドが例外を返した場合は,ファイルまたは標準出力に出力されます。 |
性能解析トレース | サービスプラットフォーム上に出力されます。 |
性能検証用トレース | TP1/Server上に出力されます。 |
トレースを出力する場合,環境変数TZにタイムゾーンを設定してください。設定していないと,トレース情報の時刻が正しく出力されません。
ファイルに出力されるトレースは,出力先ディレクトリなどを変更できます。トレースファイルに指定できるオプションと出力ファイル名を次の表に示します。また,ファイル出力ディレクトリを変更するための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 |
複数のCUPのトレースファイルの出力先に同じディレクトリを指定すると,複数のCUPのトレース情報が混在し,トラブルシュートが困難になります。そのため,トレースファイル出力先ディレクトリはそれぞれのCUPで別々にすることをお勧めします。
また,1つのトレースデータの出力サイズによっては,指定したトレースファイルのサイズよりファイルサイズが大きくなる場合があります。
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........ : : : |
各種情報に出力する情報は,メソッドおよび取得するタイミングによって異なります。
データトレース情報は,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 ................ : : : |
エラートレース情報は,TP1/Client/J環境定義のdcerrtracepathオペランドで指定したディレクトリに,DCERR1.TRCおよびDCERR2.TRCというファイル名で出力されます。ファイルのサイズは,TP1/Client/J環境定義のdcerrtracesizeオペランドで指定します。
エラートレースは,TP1/Client/Jが検知した障害をメッセージ形式でファイルに記録します。メソッド実行中に障害が発生した場合,その原因は例外として報告されますが,それだけでは原因を特定できない場合があります。エラートレースを取得すると,詳細なエラー情報がファイルに出力され,原因調査の資料として使用できます。
エラートレースファイルの出力形式を次に示します。
(ttt)yyyy/mm/dd hh:mm:ss.uuu eeeeeeeeeeee |
表A-7 エラートレース,メモリトレースで取得するメッセージ
メッセージの内容 | 意味 |
---|---|
Invalid message received. method=aaaaaaaa |
TP1/Serverから不正なメッセージを受信しました。
|
Error reply received. inf=aaaaaaaa, method=bbbbbbbb |
TP1/Serverからエラー応答を受け取りました。
|
Exception occured. inf=aaaaaaaa, exception=bbbbbbbb(cc...cc), method=dddddddd |
TP1Clientクラス内でJavaシステムから例外を受け取りました。またはTP1ClientクラスからJavaアプレット,Javaアプリケーション,またはJavaサーブレットに例外を返しました。
|
Invalid data received. (aa...aa), method=bbbbbbbb |
cltAssemReceiveメソッドで相手システムから不正なデータを受信しました。
|
Receiving message was canceled. aaaaaaaa (bb...bb) method=cccccccc |
cltAssemReceiveメソッドで相手システムから受信したメッセージを破棄しました。
|
User data did not compress, group=aa...aa, service=bb...bb, reason= cc...cc |
ユーザデータを圧縮しませんでした。データを圧縮しないでサービスを要求します。
「NOT SUPPORT VERSION」の場合,サービス要求先のTP1/Serverが,データ圧縮機能を使用できるバージョン(TP1/Server Base 03-03以降)かどうかを確認してください。 |
メソッドトレース情報は,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 ......|......... |
デバッグトレース情報は,通常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 ......|......... |
性能解析トレース(PRFトレース)情報とは,サービスプラットフォームのトレース情報です。性能解析トレースを取得すると,UAP実行時の,一連の処理の流れおよび処理に掛かった時間を知ることができ,性能解析に必要な情報を採取できます。また,障害が発生したときに,処理がどこまで到達したかを知ることができます。
性能解析トレースの概要および使用方法の詳細については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。ここでは,次に示す事項について説明します。
TP1/Client/Jでは,TP1/Client/Jをサービスプラットフォーム上で動作させた場合に,サービスプラットフォーム上で性能解析トレースを出力できます。性能解析トレースは,TP1/Client/Jのトレース取得ポイントで取得されます。性能解析トレースを取得する場合は,TP1/Client/J環境定義にdccltprftrace=Yを指定します。
サービスプラットフォーム上で性能解析トレースを出力する場合,TP1/Client/Jが取得する情報の分だけ,出力される性能解析トレースのサイズが大きくなることを考慮して,性能解析トレースのサイズを指定してください。
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 解説」を参照してください。
TP1/Client/Jで取得した情報は,性能解析トレースの付加情報部分に出力されます。性能解析トレースに取得する情報,およびトレースの出力例を次に示します。
... OPT ASCII ... 16進表示 _Jaa/0xbbbbbbbb/0xccccdddd...
TP1/Client/Jの性能解析トレースの,トレース取得ポイントの詳細を,処理ごとに説明します。
表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-6 rapリスナーとのコネクション確立,切断処理でのトレース取得ポイント
表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-7 リモートAPI機能でのAPI代理実行要求でのトレース取得ポイント
表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-8 スケジュールサーバへのRPC要求でのトレース取得ポイント
図A-9 ネームサーバへのサービス情報の問い合わせでのトレース取得ポイント
表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-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 |
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 |
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.