6.3.2 回線トレースファイルの運用
回線トレースファイルは,送受信メッセージや,リソースマネジャ使用時のXAインタフェースなどのデータおよび状態などに関する情報を,回線トレース情報として取得します。通常はイベント発生時の要求ごとに回線トレース情報を取得します。ただし,トランザクション実行中に要求された取得項目は,トランザクション終了時に一括して取得します。
回線トレースファイルに取得した回線トレース情報は,eetrblineedコマンドを実行して編集し,標準出力,またはCSV形式のファイルとして出力します。また,eetrblinedumpコマンドを実行すると,コアファイルまたはメモリダンプファイルを入力情報として,回線トレースファイルの編集結果を標準出力,またはCSV形式のファイルとして出力することもできます。
TASKTMスレッドの異常やI/Oが間延びしてバッファが不足した場合,eetrblineedコマンドでは回線トレース情報を出力できません。ただし,eetrbtrcefputコマンドを実行すると強制出力できます。
- 〈この項の構成〉
(1) 回線トレースファイルの容量設定
回線トレースファイルは,トラブルシュート関連定義のtrb_trace_file_sizeオペランドに指定したサイズで,TP1/EEのプロセスごとにUNIXファイルとして作成されます。プロセスごとに,トラブルシュート関連定義のtrb_trace_file_noオペランドで指定した数の回線トレースファイルが作成され,ラウンドロビン方式で使用されます。回線トレースファイルのサイズおよびファイル数は,ノードで稼働するTP1/EEのプロセス数やノードのリソース容量などを考慮して,指定してください。
(a) 見積もりに必要な情報
トラブルシュート関連定義のtrb_trace_typeオペランドに1を指定した場合に,回線トレースファイルのサイズおよびファイル数を見積もるために必要になる情報を次に示します。
-
トランザクション単位のバイト数:480
-
SDBハンドラ機能の個別開始APIの実行回数単位のバイト数:100
-
SDBハンドラ機能のDBアクセスAPIの実行回数単位のバイト数:108
-
SDBハンドラ機能の個別終了APIの実行回数単位のバイト数:52
-
SDBハンドラ機能の一括削除APIの実行回数単位のバイト数:52
-
SDBハンドラ機能のシステム構成表示のバイト数:52
-
メッセージ受信単位のバイト数:380
-
メッセージ送信単位のバイト数:380
-
1ブロック単位に付加する情報のバイト数:96
-
1ファイル単位に付加する情報のバイト数:128+34×(サービス数+DBキュー機能で使用するDBキュー数+オンラインバッチ機能で使用するDBキュー数+オンラインバッチ機能で使用するロット数)+256
SDBハンドラ機能については,TP1/FSPの関連ドキュメントを参照してください。
回線トレースファイルに出力する情報の合計は次に示す式で求める値になります。
回線トレースファイルに出力する情報の合計(T) =(480×x)+(380×y)+(380×z)+h+u +(↑(((480×x)+(380×y)+(380×z)+h+u)÷b)↑×96) +(128+34×(s+d1+d2+l)+256)
- (凡例)
-
↑↑:小数点以下を切り上げます。
x:トランザクション数
y:受信メッセージ数
z:送信メッセージ数
h:SDBハンドラ機能を使用する場合に加算する値(TP1/FSPのSDBハンドラ機能の各種API実行回数×x×該当するAPIの実行回数単位のバイト数)。使用しない場合は0を指定する。
u:ee_trb_utrace_put関数×(ee_trb_utrace_put関数で取得するトレースデータのデータ長+28)バイト
b:バッファサイズ。trb_extend_functionオペランドに00000001を論理和で指定した場合,trb_line_trace_buffer_sizeオペランドの指定値とtrb_line_cmtrace_buffer_sizeオペランドの指定値の小さい方を指定する。trb_extend_functionオペランドを省略または00000000を論理和で指定した場合は,trb_line_trace_buffer_sizeオペランドの指定値を指定する。
s:サービス数
d1:DBキュー機能で使用するDBキュー数
d2:オンラインバッチ機能で使用するDBキュー数
l:オンラインバッチ機能で使用するロット数
回線トレースファイルに出力する情報の合計(T)から,回線トレースファイルのサイズおよびファイル数を見積もってください。6時間(21600秒)で指定したファイル数を使い切り,ラウンドロビン方式で最初に作成したファイルの上書きが開始されるように,回線トレースファイルのサイズおよびファイル数を指定することをお勧めします。
(b) 見積もり例
回線トレースファイルの見積もり例を次に示します。
- 前提条件
-
-
1サービス内で実行するコミットまたはロールバックの数は1回
UAPで発行する数は0回で,TP1/EEで発行する数が1回です。
-
1メッセージの受信で起動されるトランザクションは1
-
1トランザクションのメッセージ送信回数は1
-
1秒間当たりに稼働するサービス数は100
トランザクション数=100×1となります。
-
サービス数は5000
-
trb_line_trace_buffer_sizeオペランドの指定値は200キロバイト(204800バイト)
-
1トランザクションで21回の個別開始APIと33回のDBアクセスAPIを発行(SDBハンドラ機能を使用する場合)
-
- SDBハンドラ機能を使用しない場合
T=((480×100×21600)+(380×100×21600) +(380×100×21600)) +(↑(((480×100×21600) +(380×100×21600) +(380×100×21600))÷204800)↑×96) +(128+34×5000+256) =2679825968
- (凡例)
-
↑↑:小数点以下を切り上げます。
回線トレースファイルに出力する情報の合計は,2679825968バイト(約2.5ギガバイト)になります。
ファイル数を3ファイルに固定すると,1ファイルに格納する情報は,次のようになります。
1ファイルに格納する情報=2679825968÷3=893275323
1ファイルに格納する情報は,893275323バイト(約0.8ギガバイト)です。したがって,ファイルサイズを1ギガバイトとします。
- SDBハンドラ機能を使用する場合
T=((480×100×21600)+(380×100×21600) +(380×100×21600))+12234240000※ +(↑(((480×100×21600) +(380×100×21600)+(380×100×21600) +12234240000※)÷204800)↑×96) +(128+34×5000+256) =14919800720
- (凡例)
-
↑↑:小数点以下を切り上げます。
- 注※
-
SDBハンドラ機能を使用する場合の「h」の値は,次の計算式で求められます。
(21×100×100×21600)+(33×108×100×21600)=12234240000
回線トレースファイルに出力する情報の合計は,14919800720バイト(約13.9ギガバイト)になります。
ファイル数を3ファイルに固定すると,1ファイルに格納する情報は,次のようになります。
1ファイルに格納する情報=14919800720÷3=4973266907
1ファイルに格納する情報は,4973266907バイト(約4.64ギガバイト)になりますが,回線トレースファイルの最大サイズは4000000キロバイト(約3.8ギガバイト)のため,ファイルサイズを固定して計算し直します。
ファイルサイズを2ギガバイトに固定すると,ファイル数は次のようになります。
ファイル数=14919800720÷(2×1024×1024×1024)≒7
したがって,ファイル数を7ファイルとします。
(2) 回線トレースファイルの作成
回線トレースファイルはTP1/EEの起動時,$DCDIR/spool/dceeinf/trcディレクトリ下にTP1/EEが作成します。したがって,OpenTP1管理者は回線トレースファイルを作成する必要はありません。TP1/EEが作成するファイル名は,次に示す規則で付けられます。
サービスグループ名trcXXX(XXXは,3けたのファイル通番)
(3) 回線トレースファイルの削除
TP1/EEの起動時に,前回のTP1/EE稼働時の回線トレースファイルが存在する場合は,最も古い回線トレースファイルに回線トレース情報を上書きします。したがって,OpenTP1管理者は回線トレースファイルを削除する必要はありません。
(4) 回線トレースファイルの保存
出力中の回線トレースファイルのサイズが,トラブルシュート関連定義のtrb_trace_file_sizeオペランドの指定値を超えた場合,出力先が新しい回線トレースファイルに切り替わります。この場合,出力先が新しい回線トレースファイルに切り替わることを通知するKFSB85400-Iメッセージが出力されます。このメッセージが出力されるタイミングで,回線トレースファイルのバックアップを取得して,同一論理ボリューム上でファイル移動(mvコマンド)することをお勧めします。
回線トレースファイル数が,トラブルシュート関連定義のtrb_trace_file_noオペランドの指定値を超えた場合,最も古い回線トレースファイルに回線トレース情報を上書きします。古い回線トレースファイルの回線トレース情報を保存したい場合はTP1/EEが上書きする前に,OpenTP1管理者がバックアップしてください。
使用中の回線トレースファイルをバックアップした場合,編集結果が正しく表示できないことがあります。そのため,回線トレースファイルを切り替えることを通知するメッセージが出力されてから,バックアップを取得してください。また,使用中の回線トレースファイルは,移動または削除しないでください。
(5) 回線トレース情報の取得量の変更
送受信データごとに回線トレース情報を取得する場合,I/O処理の増加によって性能が低下したり,重要な回線トレース情報が欠落したりすることがあります。これを防止するために,RPC関連定義のrpc_tcp_linetraceオペランドまたはrpc_rap_linetraceオペランドを指定することで,送受信時の回線トレース情報の取得内容を変更できます。
それぞれのオペランドの指定値別に,取得内容および取得サイズの差異について説明します。
(a) 取得内容
メッセージ送受信が正常終了した場合の取得内容を,オペランドの指定値によって変更できます。オペランドの指定値別に,回線トレース情報の取得内容について説明します。
- 00000000(デフォルト)
-
すべての回線トレース情報を,送信側と受信側で取得します。
送受信処理が正常に完了した場合は,最大で376バイト取得します。
- 00000020
-
送受信データの先頭にある製品ヘッダ(RPCの場合は264バイト,リモートAPI機能の場合は376バイト)を回線トレース情報として取得します。RPCのフラグメントメッセージの場合は,フラグメントごとに製品ヘッダ分だけ取得します。該当するフラグメントで,製品ヘッダ分の回線トレースを取得済みの場合,送受信データの内容は取得しません。
また,送受信データに製品ヘッダがない場合は,送受信データ長を0として回線トレースを取得します。
(b) 取得サイズの差異
回線トレース情報の取得サイズの差異について,次の図に示します。この例では,RPCのメッセージを4回に分けて受信したため,メッセージが四つに分割されています。
|
(6) 回線トレースファイルに関するシステム定義の関連
ここでは,回線トレースファイルに関するシステム定義のうち,指定値同士に関連があるものについて説明します。
回線トレースファイルのサイズに関するシステム定義には,次のものがあります。
-
ファイルサイズの指定(trb_trace_file_sizeオペランド)
-
バッファサイズの指定(trb_line_trace_buffer_sizeオペランド,およびtrb_line_cmtrace_buffer_sizeオペランド)
-
一時バッファ領域サイズの指定(trb_line_cmtrace_buf_entry_sizeオペランド)
それぞれのオペランドについて,次に示す式を満たすように指定してください。
a>b>c
- (凡例)
-
a:trb_trace_file_sizeオペランドの指定値
b:ファイル単位に付加する情報のバイト数+バッファサイズ※
c:trb_line_cmtrace_buf_entry_sizeオペランドの指定値
- 注※
-
バッファサイズは,trb_extend_functionオペランドに00000001を論理和で指定した場合,trb_line_trace_buffer_sizeオペランドの指定値とtrb_line_cmtrace_buffer_sizeオペランドの指定値の大きい方を加算してください。trb_extend_functionオペランドを省略するか,または00000000を指定した場合は,trb_line_trace_buffer_sizeオペランドの指定値を加算してください。