7.4.6 デバッグ情報
デバッグ情報を出力できる機能を次の表に示します。また,各機能の出力形式の指定可否もあわせて示します。
デバッグ情報を出力できる機能 |
出力形式の指定可否 |
---|---|
ユーザ電文トレース機能 |
○ |
データ変換API |
× |
データ変換単体テストコマンド csctransformコマンド cscbinaryparseコマンド cscgenbinaryコマンド |
デバッグ情報の取得を設定した場合,ユーザ電文トレースで出力されるデバッグ情報は次の3つの部分で構成されます。
-
ユーザ電文トレース(デバッグ情報)開始
-
ユーザ電文トレース(デバッグ情報)データ
-
ユーザ電文トレース(デバッグ情報)終了
デバッグ情報の出力形式を次に示します。
この項は,取得されたユーザ電文トレース(デバッグ情報)の確認方法について説明します。デバッグ情報の取得方法については,「7.3.2(6) デバッグ情報の取得方法」を参照してください。
- 注意事項
-
デバッグ情報は電文の内容をファイルに出力します。そのため,情報漏洩などのセキュリティ上の問題が発生しないよう,取り扱いに注意してください。
- 〈この項の構成〉
(1) ユーザ電文トレース(デバッグ情報)の出力先
ユーザ電文トレース(デバッグ情報)の出力先を次に示します。
(a) データ変換APIの実行時に出力されるデバッグ情報
ユーザ電文トレース(デバッグ情報)は,usrconf.properties(J2EEサーバ用ユーザプロパティファイル)のcsc.dt.debugtrace.filepathプロパティで指定されたパスへ出力されます。ファイル名を次に示します。
-
ラップアラウンドモードの場合
cscdebug_<グループ名>_<面数>.log
-
シフトモードの場合
cscdebug_<グループ名>_.log
<グループ名>には,データ変換APIのインスタンス(グループ)の名称が付加されます。
<面数>には,usrconf.properties(J2EEサーバ用ユーザプロパティファイル)で設定した面数が付加されます。
(b) HCSCサーバでのデータ変換時に出力されるデバッグ情報
ユーザ電文トレース(デバッグ情報)は,HCSCサーバランタイム定義ファイルのtelegramtrace-filepathプロパティで指定されたパスへ出力されます。なお,指定したパスが存在しない場合,またはパスが誤っていた場合は,省略値の出力先にトレースが出力されます。
ファイル名を次に示します。
-
ラップアラウンドモードの場合
csctelegram_<HCSCサーバ名>_<面数>.log
-
シフトモードの場合
csctelegram_<HCSCサーバ名>_.log
<面数>には,HCSCサーバランタイム定義ファイルで設定した面数が付加されます。
(c) データ変換単体テストコマンドの実行時に出力されるデバッグ情報
ユーザ電文トレース(デバッグ情報)は,データ変換単体テストコマンド(csctransformコマンド,cscbinaryparseコマンド,およびcscgenbinaryコマンド)で指定されたパスへ出力されます。ファイル名を次に示します。
cscdebug_dtcommand_<面数>.log
<面数>には面数が付加されます。面数の最大は16,1面当たりの最大サイズは2147483647バイトです。面数の最大値,最大サイズ,ローテーション方式は変更できません。
(2) ユーザ電文トレース(デバッグ情報)開始の出力形式と出力される内容
(a) 出力形式
ユーザ電文トレース(デバッグ情報)開始の出力形式を次の図に示します。
(b) 出力される内容
ユーザ電文トレース(デバッグ情報)開始に出力される内容を次の表に示します。
項目 |
内容 |
|
---|---|---|
番号 |
トレースレコードの出力通番が表示されます。 |
|
日付 |
トレースレコードの取得日付(yyyy/mm/dd形式)が出力されます。 |
|
時刻 |
トレースレコードの取得時刻(hh:mm:ss.SSS形式)が,ローカル時刻でミリ秒単位に出力されます。 |
|
製品ID |
製品を特定するための識別子が出力されます。
|
|
pid |
プロセスを識別するためのIDが出力されます。 |
|
tid |
スレッドを識別するためのIDが出力されます。 |
|
ID |
表示されません。 |
|
電文トレース開始取得ポイント識別情報 |
電文トレース開始 |
ユーザ電文トレース開始を示す文字列「debugtrace started」が出力されます。 |
取得位置 |
トレースの取得ポイント情報(取得位置)が出力されます。
|
|
プロトコル種別 |
表示されません。 |
|
詳細位置 |
トレースの取得ポイント情報(詳細位置)が出力されます。
|
|
メッセージ共通ID |
表示されません。 |
|
付加情報 |
次の付加情報が出力されます。 (a) バイナリデータの場合
(b) DOMの場合
|
|
CRLF |
レコード終端符号が出力されます。 |
(3) ユーザ電文トレース(デバッグ情報)データの出力形式と出力される内容
データ変換基盤では,エラー発生までに処理した電文の情報をデバッグ情報としてユーザ電文トレースに出力できます。
デバッグ情報で出力される内容を次に示します。
出力タイミング |
出力されるデバッグ情報 |
用途 |
---|---|---|
バイナリデータの読込時(バイナリデータ→DOMの変換) |
読み込みが完了したバイナリデータ,およびDOMの情報 |
処理中のデータに不正なデータが存在した場合,内容を確認できます。 |
入力データ全体のサイズ |
入力データの不正な個所を特定できます。 |
|
入力データに対する現在の読み込み位置(エラーが発生した際の読み込み位置) |
||
エラー発生時に処理していたノードの絶対パス |
||
ルートアプリケーション情報 |
同じルートアプリケーション情報をメッセージログから引き当てることで,エラー原因のメッセージ出力個所を特定できます。 |
|
バイナリデータの生成時(DOM→バイナリデータの変換) |
エラーが起きたノードまでのDOMの情報 |
処理中のデータに不正なデータが存在した場合,内容を確認できます。 |
エラー発生時に処理していたノードの絶対パス |
入力データの不正な個所を特定できます。 |
|
ルートアプリケーション情報 |
同じルートアプリケーション情報をメッセージログから引き当てることで,エラー原因のメッセージ出力個所を特定できます。 |
なお,デバッグ情報に出力されたノードがエラーの原因とは限らないため,前後のノードの情報と,それに対応するバイナリデータも参照してください。
(a) 出力形式(telegramtrace-format=FIXEDを指定した場合)
HCSCサーバランタイム定義ファイルにtelegramtrace-format=FIXEDを指定した場合のユーザ電文トレース(デバッグ情報)データの出力形式を次の図に示します。
(b) 出力される内容(telegramtrace-format=FIXEDを指定した場合)
HCSCサーバランタイム定義ファイルにtelegramtrace-format=FIXEDを指定した場合のユーザ電文トレース(デバッグ情報)データに出力される内容を次の表に示します。なお,デバッグ情報がない場合(バイナリ,DOMのデータ長が0またはnullの場合)は,トレースデータを出力しません。
項目 |
内容 |
|
---|---|---|
番号 |
トレースレコードの出力通番が表示されます。 |
|
日付 |
トレースレコードの取得日付(yyyy/mm/dd形式)が出力されます。 |
|
時刻 |
トレースレコードの取得時刻(hh:mm:ss.SSS形式)が,ローカル時刻でミリ秒単位に出力されます。 |
|
製品ID |
製品を特定するための識別子が出力されます。
|
|
pid |
プロセスを識別するためのIDが出力されます。 |
|
tid |
スレッドを識別するためのIDが出力されます。 |
|
ID |
表示されません。 |
|
電文トレースデータ情報 |
出力位置(16進数形式) |
ユーザ電文の先頭からのオフセット値(16進数形式)が出力されます。 |
データ(16進数形式) |
ユーザ電文(バイナリデータまたはDOM)の内容が16進数形式で出力されます。 |
|
データ(ASCII形式) |
ユーザ電文(バイナリデータまたはDOM)の内容がASCII形式で出力されます。 0x00〜0x1F,0x7F〜0xFFの範囲の場合はASCII文字,それ以外の場合はピリオド(.)が出力されます。 |
|
CRLF |
レコード終端符号が出力されます。 |
(c) 出力形式(telegramtrace-format=READABLEを指定した場合)
HCSCサーバランタイム定義ファイルにtelegramtrace-format=READABLEを指定した場合,16進数形式データとUTF-8形式データはそれぞれ別の行に出力されます。それぞれの出力形式を次の図に示します。
(d) 出力される内容(telegramtrace-format=READABLEを指定した場合)
HCSCサーバランタイム定義ファイルにtelegramtrace-format=READABLEを指定した場合,16進数形式データとUTF-8形式データの出力内容が異なります。それぞれの出力形式を次の表に示します。
項目 |
内容 |
|
---|---|---|
番号 |
トレースレコードの出力通番が表示されます。 |
|
日付 |
トレースレコードの取得日付(yyyy/mm/dd形式)が出力されます。 |
|
時刻 |
トレースレコードの取得時刻(hh:mm:ss.SSS形式)が,ローカル時刻でミリ秒単位に出力されます。 |
|
製品ID |
製品を特定するための識別子が出力されます。
|
|
pid |
プロセスを識別するためのIDが出力されます。 |
|
tid |
スレッドを識別するためのIDが出力されます。 |
|
ID |
表示されません。 |
|
電文トレースデータ情報 |
出力位置(16進数形式) |
ユーザ電文の先頭からのオフセット値(16進数形式)が出力されます。 |
データ(16進数形式) |
ユーザ電文(バイナリデータまたはDOM)の内容が16進数形式で出力されます。 |
|
CRLF |
レコード終端符号が出力されます。 |
項目 |
内容 |
|
---|---|---|
番号 |
トレースレコードの出力通番が表示されます。 |
|
日付 |
トレースレコードの取得日付(yyyy/mm/dd形式)が出力されます。 |
|
時刻 |
トレースレコードの取得時刻(hh:mm:ss.SSS形式)が,ローカル時刻でミリ秒単位に出力されます。 |
|
製品ID |
製品を特定するための識別子が出力されます。
|
|
pid |
プロセスを識別するためのIDが出力されます。 |
|
tid |
スレッドを識別するためのIDが出力されます。 |
|
ID |
表示されません。 |
|
電文トレースデータ情報 |
データ(UTF-8形式) |
ユーザ電文(バイナリデータまたはDOM)の内容をUTF-8形式で出力します。
|
CRLF |
レコード終端符号が出力されます。 |
区分 |
文字コードの範囲(16進数) |
---|---|
2バイト文字の開始バイト |
0xC0〜0xDF |
3バイト文字の開始バイト |
0xE0〜0xEF |
4バイト文字の開始バイト |
0xF0〜0xF7 |
5バイト文字の開始バイト |
0xF8〜0xFB |
6バイト文字の開始バイト |
0xFC〜0xFD |
マルチバイト文字の2バイト目以降 |
0x80〜0xBF |
(4) ユーザ電文トレース(デバッグ情報)終了の出力形式と出力される内容
(a) 出力形式
ユーザ電文トレース(デバッグ情報)終了の出力形式を次の図に示します。
付加情報のデータ長の上限は目安です。上限値を超えても切り捨てられないで出力されます。
(b) 出力される内容
ユーザ電文トレース(デバッグ情報)終了に出力される内容を次の表に示します。
項目 |
内容 |
|
---|---|---|
番号 |
トレースレコードの出力通番が表示されます。 |
|
日付 |
トレースレコードの取得日付(yyyy/mm/dd形式)が出力されます。 |
|
時刻 |
トレースレコードの取得時刻(hh:mm:ss.SSS形式)が,ローカル時刻でミリ秒単位に出力されます。 |
|
製品ID |
製品を特定するための識別子が出力されます。
|
|
pid |
プロセスを識別するためのIDが出力されます。 |
|
tid |
スレッドを識別するためのIDが出力されます。 |
|
ID |
表示されません。 |
|
電文トレース終了取得ポイント識別情報 |
電文トレース終了 |
ユーザ電文トレース終了を示す文字列「debugtrace ended」が出力されます。 |
取得位置 |
トレースの取得ポイント情報(取得位置)が出力されます。
|
|
プロトコル種別 |
表示されません。 |
|
詳細位置 |
トレースの取得ポイント情報(詳細位置)が出力されます。
|
|
メッセージ共通ID |
表示されません。 |
|
付加情報 |
付加情報として,ユーザ電文の長さが10進数形式で出力されます。ユーザ電文がない場合は「null」,0バイトの場合は「0」が出力されます。 |
|
CRLF |
レコード終端符号が出力されます。 |
(5) ユーザ電文トレース(デバッグ情報)の出力契機
デバッグ情報の出力契機は,機能ごとに次のように異なります。
(a) データ変換APIの実行時に出力されるデバッグ情報
データ変換APIでのバイナリデータの変換処理中にエラーが発生した場合,デバッグ情報が出力されます。
(b) HCSCサーバでのデータ変換時に出力されるデバッグ情報
HCSCサーバのデータ変換時のデバッグ情報を出力する場合(HCSCサーバランタイム定義ファイルのtelegramtrace-triggerプロパティに「DTERR」を指定した場合),デバッグ情報は次のタイミングで出力されます。
タイミング |
出力されるデバッグ情報 |
---|---|
バイナリデータの読込処理(バイナリからDOMへの変換)時 |
エラー発生までに処理した電文(バイナリ,DOM)の情報 |
バイナリデータの生成処理(DOMからバイナリへの変換)時 |
エラー発生までに処理した電文(DOM)の情報 |
(c) データ変換単体テストコマンドの実行時に出力されるデバッグ情報
データ変換単体テストコマンド(csctransformコマンド,cscbinaryparseコマンド,およびcscgenbinaryコマンド)の実行時にエラーが発生した場合,デバッグ情報が出力されます。
(6) ユーザ電文トレース(デバッグ情報)の取得ポイント
ユーザ電文トレース(デバッグ情報)のデバッグ情報を出力する場合の取得ポイントを説明します。
バイナリデータのデータ変換処理の解析エラー発生時に関して,ユーザ電文トレース(デバッグ情報)のトレース取得ポイントを次の図に示します。
トレース取得ポイントを次の表に示します。表の「図中の番号」は,上の図の中の番号と対応しています。
図中の番号 |
トレース取得ポイント |
---|---|
1 |
バイナリデータの読込処理のエラー発生個所 |
2 |
バイナリデータの生成処理のエラー発生個所 |
(7) 詳細情報メッセージの出力
バイナリデータ変換処理でエラーが発生した場合,デバッグ情報の出力可否に関係なく,詳細情報メッセージ(KDEC40312-I,KDEC40313-I)がメッセージログに出力されます。
詳細情報メッセージには次に示す情報が出力されるため,入力データの不正な個所の特定に利用できます。
-
エラー発生時に処理していたノードの絶対パス
-
エラー発生時の入力データの読み込み位置
-
入力データの全体サイズ
-
保守情報
また,詳細情報メッセージの出力個所の前後には,エラーの原因を示す例外メッセージが出力されているため,あわせて確認してください。