ジャーナルサービス定義
形式
set形式
〔set jnl_tran_optimum_level=ジャーナルの出力方式に対する 最適化レベル〕 〔set jnl_arc_terminate_timeout=待ち合わせ最大時間〕 〔set max_socket_descriptors=ソケット用ファイル記述子の最大数〕 〔set jnl_arc_ipc_buff_size=TCP/IPの送受信バッファサイズ〕 〔set jnl_watch_time=ジャーナルサービスの通信応答待ち時間〕 〔set jnl_message_id_change_level=メッセージIDの変更レベル〕 〔set watch_time=最大応答待ち時間〕
コマンド形式
jnldfsv -r システムジャーナルサービス定義のファイル名 -c チェックポイントダンプサービス定義のファイル名 〔〔, チェックポイントダンプサービス定義のファイル名〕…〕
機能
システムジャーナルサービスとチェックポイントダンプサービスを使用するための実行環境を定義します。
なお,システム再開始時に定義の変更はできません。
説明
set形式のオペランド
●jnl_tran_optimum_level=ジャーナルの出力方式に対する最適化レベル
〜〈符号なし整数〉((2〜3))《2》
トランザクション実行時に,ジャーナルファイルに取得するトランザクションの回復に必要なジャーナルの出力方式に対する最適化レベルを指定します。レベル3は,業務形態に注意して指定してください。
- 2
-
次の場合にジャーナルを同期出力します。次に示すジャーナル以外は,非同期出力します。
-
グローバルトランザクション内のルートトランザクションブランチでPJを出力する場合
-
他ノードに分岐したトランザクションブランチでPJとHJを出力する場合
これらのジャーナル以外を非同期出力すると,トランザクション実行時のジャーナル入出力数が減り,性能が上がります。
なお,システム異常終了後の再開始処理時,非同期出力でファイルに出力されなかったジャーナルは,トランザクションを回復するとき,システムが再度出力します。
-
- 3
-
実行中のトランザクションが次の条件を含んでいない場合,すべてのジャーナルを非同期出力します。これによって,トランザクション実行時のジャーナル入出力がなくなるので,性能が上がります。
なお,実行中のトランザクションが次の場合は,レベル2でジャーナルを取得します。
-
DAMを使用するグローバルトランザクションで,ディファード更新機能を使っていないDAMファイルを更新した場合
-
複数ノードにわたるグローバルトランザクションを実行した場合
-
ISAMを使用するグローバルトランザクションで更新した場合
-
MCFを使用するグローバルトランザクションで更新した場合
非同期出力を要求されたトランザクションジャーナルは,ジャーナルファイルに出力されます。出力される時期を次に示します。
-
トランザクション内でアクセスしたリソースマネジャ(DAM,TAM,MCF)がファイルを実更新するとき(一定間隔で行われます)
-
チェックポイントダンプ取得時
-
ジャーナルバッファがいっぱいになったとき
ただし,システム異常終了後の再開始時,ジャーナルファイルにジャーナルが出力されなかったトランザクションはロールバックします。システム異常終了前にトランザクションが正常(コミット完了済み)に終了していてもロールバックします。トランザクションのコミットAPIが正常リターンしたことを期待して,ユーザ処理するUAPを実行すると,その実行中にOpenTP1が異常終了した場合,トランザクションとユーザ処理の状態不一致が発生することがあります。そのため,システム再開始後にロールバックしては困る場合は,レベル3を指定しないようにする必要があります。
-
●jnl_arc_terminate_timeout=待ち合わせ最大時間
〜〈符号なし整数〉((0〜3600))《0》(単位:秒)
ジャーナルサービスを終了させてから,アーカイブサービスが停止するまで,最大待ち時間を秒単位で指定します。指定時間が過ぎても使用中のアーカイブサービスがある場合は,サービスは中断されます。また,ジャーナルサービスも終了します。
0を指定した場合は,被アーカイブノードの終了処理が完了するまで,アーカイブサービスとジャーナルサービスは終了されません。
●max_socket_descriptors=ソケット用ファイル記述子の最大数
〜〈符号なし整数〉((32〜2032))
OpenTP1制御下のプロセス※でのソケット用に使用するファイル記述子の最大数を指定します。
指定値の範囲は,適用OSがAIX,HP-UXまたはWindowsの場合は32〜2032,適用OSがSolarisまたはLinuxの場合は32〜1008です。
OpenTP1制御下のプロセス※は,システムサーバやユーザサーバとの間で,ソケットを使用したTCP/IP通信でプロセス間の情報交換をしています。そのため,同時に稼働するUAPプロセスの数,および通信する他ノードの数によって,このオペランドを変更する必要があります。
- 注※
-
MCFサービス(MCFマネジャサービス,MCF通信サービス,およびアプリケーション起動サービス)以外のOpenTP1プロセスが対象です。MCFサービスの場合は,「システムサービス情報定義」および「システムサービス共通情報定義」を参照してください。
ソケット用ファイル記述子の最大数の算出式を,次に示します。
↑(自ノード内UAPプロセス数※1+ジャーナルサービスに対してサービスを要求してくるノード数※2+システムサービスプロセス数※3)/0.8↑
↑↑:小数点以下を切り上げます。
- 注※1
-
自ノード内UAPプロセス数は,次に示す値の合計です。
-
自OpenTP1内のUAPプロセス数
-
CUPから同時に起動するトランザクション数(クライアントサービス定義のparallel_countオペランドの指定値)
-
- 注※2
-
ジャーナルサービスに対してサービスを要求してくるノード数は,ジャーナルのアーカイブ機能を使用する場合だけ加算してください。このノード数は,次に示す値の合計です。
-
自OpenTP1のall_nodeオペランドに指定したノード名の数
-
自ノード名を,OpenTP1のall_nodeオペランドに指定している,他ノードの数
-
- 注※3
-
システムサービスプロセス数とは,自OpenTP1内のシステムサービスプロセスの数です。自OpenTP1内のシステムサービスプロセスは,rpcstatコマンドで表示されるサーバ名をカウントすることで求められます。rpcstatコマンドで表示されるサーバ名のうち,マニュアル「OpenTP1 解説」のOpenTP1のプロセス構造に記載されているシステムサービスプロセスをカウントしてください。
このオペランドの指定が小さいと,OpenTP1制御下の他プロセスとのコネクションが設定できなくなるため,プロセスがKFCA00307-Eメッセージを出力して異常終了します。
指定値の優先順位は次のとおりです(1.>2.)。
-
ジャーナルサービス定義
-
システム共通定義
ここで指定を省略した場合,システム共通定義の値を仮定します。
●jnl_arc_ipc_buff_size=TCP/IPの送受信バッファサイズ
〜〈符号なし整数〉((8192〜1048576))《61440》(単位:バイト)
アーカイブ機能を使用して,ジャーナルをアーカイブノードに転送するジャーナル転送プロセスが使用するTCP/IPの送受信バッファのサイズを指定します。
高速な通信媒体を使用する場合,値を大きくすることで性能が向上できます。このオペランドの値には,各OSで指定できるTCP/IPのバッファサイズの上限値以下の値を指定してください。また,このオペランドの値は,アーカイブノード側のグローバルアーカイブジャーナルサービス定義のjnl_arc_ipc_buff_sizeオペランドの指定値と合わせてください。
●jnl_watch_time=ジャーナルサービスの通信応答待ち時間
〜〈符号なし整数〉((0〜65535))《180》(単位:秒)
ジャーナルサービスがRPCによってプロセス間で通信する場合の,サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。指定時間を過ぎても応答がない場合,RPCは送受信タイムアウトとしてエラーリターンします。
0を指定した場合は,応答を受信するまで待ち続けます。この場合,OpenTP1が終了しないことがあります。
特別なチューニングが不要な場合は,このオペランドの内容を変更しないでください。
jnl_watch_timeオペランドが有効になる範囲を次に示します。
-
jnlopnfgコマンド
-
jnlclsfgコマンド
-
jnlchgfgコマンド
-
jnlunlfgコマンド
-
jnlswpfgコマンド※
-
ジャーナルファイル障害,満杯時のスワップ要求通信応答待ち時間
- 注※
-
jnlswpfgコマンドの通信応答待ち時間は,jnl_watch_timeオペランドに指定した値の2倍になります。
●jnl_message_id_change_level=メッセージIDの変更レベル
〜〈符号なし整数〉((0〜1))《0》
ジャーナルサービスが出力するメッセージで,重要な情報となるメッセージの種別を変更します。
メッセージログを監視し,メッセージの種類によって管理方法を区別したい場合にこのオペランドを使用してください。
このオペランドによって変更されるのはメッセージIDだけであり,メッセージの内容は変更されません。
- 0
-
メッセージIDを変更しないで,従来どおりのメッセージIDで出力します。
- 1
-
メッセージIDを変更し,出力します。
このオペランドの指定値と出力されるメッセージの関係を次に示します。
jnl_message_id_change_level オペランドの指定値 |
0 |
1 |
---|---|---|
出力されるメッセージID |
KFCA01224-I |
KFCA01230-W |
KFCA01250-I |
KFCA01231-W |
●watch_time=最大応答待ち時間
〜〈符号なし整数〉((0〜65535))(単位:秒)
RPCによってプロセス間で通信する場合,サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。
OpenTP1の終了処理で,このオペランドで指定した時間だけ終了処理を待ち合わせる場合があります。したがって,大きな値を指定した場合,OpenTP1の終了処理に時間が掛かる場合があります。
指定時間を過ぎても応答がない場合は,RPCは送受信タイムアウトとしてエラーリターンします。
0を指定した場合は,応答を受信するまで待ち続けます。0を指定した場合,OpenTP1が終了しない場合があります。
省略した場合は,システム共通定義のwatch_timeオペランドの値を仮定します。
このオペランドは,システム共通定義のwatch_timeオペランドのデフォルト値で使用してください。
特別なチューニングを必要とする場合以外は,このオペランドの内容を変更しないことをお勧めします。
システム共通定義のwatch_timeオペランドのデフォルト値よりも,極端に小さな値または大きな値を指定すると,OpenTP1ダウンに至る障害が発生する場合がありますので,ご注意ください。
コマンド形式
次ページ以降に記述しています。