Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option 使用の手引


6.3.1 TASKTMファイルの運用

TASKTMファイルは,トランザクションの開始からコミットまたはロールバックまでの間に各スレッドで処理する事象の発生回数や時間を,TASKTM情報として取得します。リソースマネジャにHiRDBを使用する場合は,DB情報も取得します。

処理スレッドでコミットまたはロールバックが複数実行される場合は,トランザクションごとにTASKTM情報を取得します。また,処理スレッド完了時もTASKTM情報を取得します。

TASKTMファイルに取得したTASKTM情報は,eetrbtaskedコマンドを実行して編集し,標準出力,またはCSV形式のファイルとして出力します。また,eetrbtaskdumpコマンドを実行すると,コアファイルまたはメモリダンプファイルを入力情報として,TASKTMファイルの編集結果を標準出力,またはCSV形式のファイルとして出力することもできます。

TASKTMスレッドの異常やI/Oが間延びしてバッファが不足した場合,eetrbtaskedコマンドではTASKTM情報を出力できません。ただし,eetrbtaskfputコマンドを実行すると強制出力できます。

〈この項の構成〉

(1) TASKTMファイルの容量設定

TASKTMファイルは,トラブルシュート関連定義のtrb_tasktm_file_sizeオペランドに指定したサイズで,TP1/EEのプロセスごとにUNIXファイルとして作成されます。プロセスごとに,トラブルシュート関連定義のtrb_tasktm_file_noオペランドで指定した数のTASKTMファイルが作成され,ラウンドロビン方式で使用されます。TASKTMファイルのサイズおよびファイル数は,ノードで稼働するTP1/EEのプロセス数やノードのリソース容量などを考慮して,指定してください。

(a) 見積もりに必要な情報

TASKTMファイルのサイズおよびファイル数を見積もるために必要になる情報を次の表に示します。

表6‒5 TASKTMファイルのサイズおよびファイル数を見積もるために必要になる情報

項目

トラブルシュート関連定義のtrb_tasktm_typeオペランドの指定値

1

2,または3

トランザクション単位のバイト数※1

400

512

1ブロック単位に付加する情報のバイト数

96

1ファイル単位に付加する情報のバイト数

128+34×(サービス数)+256※2

注※1

ee_trb_uinfo_tm関数を使用する場合

 trb_tasktm_typeが1:464となります。

 trb_tasktm_typeが2:576となります。

 trb_tasktm_typeが3:560となります。

注※2

トラブルシュート関連定義のtrb_tasktm_typeオペランドの指定値が2で,かつMCPを使用する場合は,次の式になります。

128+34×(サービス数)+256+16×(論理端末数)+16×(コネクションID数)

また,トラブルシュート関連定義のtrb_tasktm_typeオペランドの指定値が3で,かつMCPとトランザクションレベル方式の処理キュースケジュールを使用する場合は,次の式になります。

128+34×(サービス数)+256+16×(論理端末数)+16×(コネクションID数)+34×(トランザクションレベル名の指定数)

なお,トランザクションレベル方式については,TP1/FSPの関連ドキュメントを参照してください。

トランザクション数をx,サービス数をs,トラブルシュート関連定義のtrb_tasktm_buffer_sizeオペランドで指定する値をbとすると,TASKTMファイルに出力する情報の合計は,次に示す式で求める値になります。

trb_tasktm_type=1の場合
TASKTMファイルに出力する情報の合計(T)
  =(400×x)+(↑((400×x)÷b)↑×96)+(128+34×s+256)
trb_tasktm_type=2の場合
TASKTMファイルに出力する情報の合計(T)
  =(512×x)+(↑((512×x)÷b)↑×96)+(128+34×s+256)
(凡例)

↑↑:小数点以下を切り上げます。

TASKTMファイルに出力する情報の合計(T)から,TASKTMファイルのサイズおよびファイル数を見積もってください。6時間(21600秒)で指定したファイル数を使い切り,ラウンドロビン方式で最初に作成したファイルの上書きが開始されるように,TASKTMファイルのサイズおよびファイル数を指定することをお勧めします。

(b) 見積もり例

TASKTMファイルの見積もり例を次に示します。

前提条件
  • 1サービス内で実行するコミットまたはロールバックの数は1回

    UAPで発行する数は0回で,TP1/EEで発行する数が1回です。

  • 1秒間当たりに稼働するサービス数は100

    トランザクション数=100×1となります。

  • サービス数は5000

  • trb_tasktm_buffer_sizeオペランドの指定値は200キロバイト(204800バイト)

trb_tasktm_type=1の場合
T=400×100×21600
   +(↑((400×100×21600)÷204800)↑×96)
   +128+34×5000+256
 =864575408
(凡例)

↑↑:小数点以下を切り上げます。

TASKTMファイルに出力する情報の合計は,864575408バイト(約0.8ギガバイト)になります。

ファイル数を3にすると,1ファイルに格納する情報は,次のようになります。

1ファイルに格納する情報=864575408÷3=288191803

1ファイルに格納する情報は,288191803バイト(約0.27ギガバイト)です。したがって,ファイルサイズは0.3ギガバイトとします。

trb_tasktm_type=2の場合
T=512×100×21600
   +(↑((512×100×21600)÷204800)↑×96)
   +128+34×5000+256
 =1106608784
(凡例)

↑↑:小数点以下を切り上げます。

TASKTMファイルに出力する情報の合計は,1106608784バイト(約1.0ギガバイト)になります。

ファイル数を3にすると,1ファイルに格納する情報は,次のようになります。

1ファイルに格納する情報=1106608784÷3=368869595

1ファイルに格納する情報は,368869595バイト(約0.34ギガバイト)です。したがって,ファイルサイズは0.4ギガバイトとします。

(2) TASKTMファイルの作成

TASKTMファイルはTP1/EEの起動時,$DCDIR/spool/dceeinf/tasktmディレクトリ下にTP1/EEが作成します。したがって,OpenTP1管理者はTASKTMファイルを作成する必要はありません。TP1/EEが作成するファイル名は,次に示す規則で付けられます。

サービスグループ名tasktmXXX(XXXは,3けたのファイル通番)

(3) TASKTMファイルの削除

TP1/EEの起動時に,前回のTP1/EE稼働時のTASKTMファイルが存在する場合は,最も古いTASKTMファイルにTASKTM情報を上書きします。したがって,OpenTP1管理者はTASKTMファイルを削除する必要はありません。

(4) TASKTMファイルの保存

出力中のTASKTMファイルのサイズが,トラブルシュート関連定義のtrb_tasktm_file_sizeオペランドの指定値を超えた場合,出力先が新しいTASKTMファイルに切り替わります。この場合,出力先が新しいTASKTMファイルに切り替わることを通知するKFSB85400-Iメッセージが出力されます。このメッセージが出力されるタイミングで,TASKTMファイルのバックアップを取得して,同一論理ボリューム上でファイル移動(mvコマンド)することをお勧めします。

TASKTMファイル数が,トラブルシュート関連定義のtrb_tasktm_file_noオペランドの指定値を超えた場合,最も古いTASKTMファイルにTASKTM情報を上書きします。古いTASKTMファイルのTASKTM情報を保存したい場合は,TP1/EEが上書きする前に,OpenTP1管理者がバックアップしてください。

使用中のTASKTMファイルをバックアップした場合,編集結果が正しく表示できないことがあります。そのため,TASKTMファイルを切り替えることを通知するメッセージが出力されてから,バックアップを取得してください。また,使用中のTASKTMファイルは,移動または削除しないでください。

(5) TASKTMファイルに関するシステム定義の関連

TASKTMファイルに関するシステム定義には,ファイルサイズの指定(trb_tasktm_file_sizeオペランド)とバッファサイズの指定(trb_tasktm_buffer_sizeオペランド)があります。

それぞれのオペランドについて,次に示す式を満たすように指定してください。

a>b
(凡例)

a:trb_tasktm_file_sizeオペランドの指定値

b:ファイル単位に付加する情報のバイト数+trb_tasktm_buffer_sizeオペランドの指定値