付録J.3 インナレプリカ機能を使用中にHiRDB/SD定義ユティリティ(pdsdbdef)を実行する場合の注意事項
pdsdbdefコマンドを実行するときは,次の点に注意してインナレプリカの運用方法を決定してください。
-
対象となるレコード型に関連するすべてのRDエリア※1は,複製定義数を一致させ,レプリカRDエリアの世代番号※2をすべてそろえて運用してください。ただし,SDBデータベースのサーバ間横分割をしている場合は,複製定義数または世代番号はサーバ内でそろっていれば問題ありません。
-
RDエリア内に複数のレコード型のレコードまたはインデクスがある場合は,すべてのレコード型に関連する格納RDエリアを一組にして運用してください。
-
複数の世代にpdsdbdefコマンドを実行する場合は,世代数分の処理時間と排他資源が必要になります。
-
レプリカRDエリアの実体がオリジナルRDエリアと別になっている状態でKFPH22032-Wメッセージが出力された場合,レプリカRDエリアの再作成が必要です。詳細については「付録J.3(1) KFPH22032-Wメッセージの出力と対処」を参照してください。
- 注※1
-
pdrdreflsコマンドで関連RDエリアを確認できます。
- 注※2
-
レプリカRDエリアの定義数または世代番号の確認には,pddblsコマンドを使用します。
- 〈この項の構成〉
(1) KFPH22032-Wメッセージの出力と対処
(a) 出力
RDエリアがコマンド閉塞かつクローズ状態のため,定義処理がスキップされると該当する世代のサーバで,バックエンドサーバごとにKFPH22032-Wメッセージが出力されます。
なお,KFPH22032-Wメッセージは複数回出力されます。*ENTRY DIRECTORY文の場合は,「(レコード型数+インデクス数)×該当する世代数(定義処理をスキップした世代数)」の数だけ,KFPH22032-Wメッセージが出力されます。例えば,レコード型数が2でインデクス数が1,該当する世代が3の場合,KFPH22032-Wメッセージは9回((2+1)×3)出力されます。
DELETE DIRECTORY文の場合は,「レコード型数×該当する世代数」の数だけKFPH22032-Wメッセージが出力されます。
(b) 対処
コマンド閉塞かつクローズ状態のため定義処理がスキップされたRDエリアは,RDエリア内の定義情報が変更されていません。ペアを分離しているなど,オリジナルRDエリアの更新が自動でレプリカRDエリアに反映される状態でない場合,RDエリアの内容は,データディクショナリ用RDエリアにあるレコード型やインデクスの定義情報と不整合となります。この状態でレプリカRDエリアの閉塞を解除して使用すると,pdsdbdefコマンドがエラーとなったり,RDエリアが障害閉塞したりします。
RDエリアの閉塞を解除する前に次のどちらかの方法で,RDエリアの内容とレコード型やインデクスの定義情報を一致させてください。
-
該当するRDエリアにオリジナルRDエリア,またはカレントRDエリアをコピーして,レプリカデータベースを再作成します。この場合,コピー元とコピー先のRDエリアの構成情報(構成ファイル数,ページ長,セグメントサイズ,およびセグメント数)が不一致のときはpdmodコマンドのRDエリアの構成情報複写で実体に合わせてRDエリアの定義情報もコピーします。
-
pdmodコマンドで該当するRDエリアを再初期化します。再初期化するとRDエリアのデータはすべて削除されるため,データを再度登録します。