付録D.1 pd_max_reflect_process_countオペランドの留意事項
(1) 値の範囲
pd_max_reflect_process_countオペランドには,次の条件を示す値を指定してください。この条件を満たさない場合,HiRDBを開始できません。
pd_max_reflect_process_count指定値+pd_max_users指定値≦pd_max_users指定可能最大値
(2) pd_max_usersオペランドとの関係
HiRDB開始時には,pd_max_reflect_process_countオペランドとpd_max_usersオペランドで指定した分だけ,HiRDBに対する接続枠が用意されます。
そのうち,pd_max_reflect_process_countオペランドで指定した分の接続枠は,更新可能なオンライン再編成での追い付き反映処理(pdorend反映プロセス)のために使用されます。ユーザの接続には使用されません。
pd_max_usersオペランドで指定した分の接続枠は,通常ユーザのために使用されます。しかし,更新可能なオンライン再編成での追い付きコマンド(pdorend)実行時に次の条件を満たすと,pdorend反映プロセスのためにも使用されます。
-
pdorend反映プロセスのための接続枠が,pd_max_reflect_process_countオペランドで指定した接続枠では足りない。
-
pd_max_usersオペランドで指定した接続枠のうちクライアントグループの自由接続枠(保証接続枠以外の部分)に空きがある。
-
自由接続枠に,↑自由接続枠数×0.1↑(約10%)より多い空きがある。
例を次に示します。
- (例)
-
オペランドの指定値および使用状況が次のような場合の動作について説明します。
- [指定値]
-
pd_max_reflect_process_countオペランドには20を,pd_max_usersには60(自由接続枠:48)を指定しています。
- [状況]
-
追い付き反映処理用の接続が,pd_max_reflect_process_countオペランドで指定された20枠すべて使用されています。
現在,自由接続枠は29枠使用されています。
- [動作]
-
この場合,↑自由接続枠数×0.1↑=5なので,自由接続枠を残り5枠になるまで必要に応じて使用します。
ここで,次のコマンドを実行すると,さらに12(=4×3)枠を自由接続枠から使用します。
pdorend -s bes1,bes2,bes3,bes4 -m 3
その次に,次のコマンドを使用すると,さらに3枠を使用しようとしますが,追い付き反映処理に使用できる空き自由接続枠が2枠(=48−29−5−12)しかないため,エラーが発生します。
pdorend -s bes5 -m 3
(3) 共用メモリの節約
pd_max_reflect_process_countオペランドで指定した値は共用メモリ容量に影響します。更新可能なオンライン再編成の追い付き反映処理中にオンライン業務を行うユーザが少ないことがわかっている場合には,pdorend反映プロセスが通常ユーザ用の自由接続枠を使用するようにpd_max_reflect_process_countオペランドを小さめに設定すると,共用メモリの使用量を節約できます。
(4) 追い付き反映処理中のユーザ接続要求エラーの回避策
更新可能なオンライン再編成の追い付き反映処理が自由接続枠を使用しているときは,ユーザ接続数がpd_max_usersで指定した値未満でも,ユーザからの接続要求がエラーになることがあります。
この現象を回避するには次のようにしてください。
-
pd_max_reflect_process_countオペランドを正しく見積もってください。見積もり方法については,「pd_max_reflect_process_countオペランドの見積もり」を参照してください。
-
更新可能なオンライン再編成のpdorend反映プロセスの最大同時実行数がpd_max_reflect_process_countオペランドで指定した値以下になるように追い付き反映処理を実行してください。具体的には,次の方法で行います。
-
pdorend同時実行数を減らす
-
pdorend -sで指定する値(サーバ数)を減らす
-
pdorend -mで指定する値(pdorend反映プロセスの多重度)を減らす
-
-
接続を保証したいユーザに対しては,クライアントグループを設定してください。