Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


付録J.1 HiRDB/SD定義ユティリティ(pdsdbdef)を実行するための条件

インナレプリカ機能を使用する場合,pdsdbdefコマンドはオリジナルRDエリアとレプリカRDエリアの対象のレコード型に関連するすべてのRDエリアに対して処理を行います。

pdsdbdefコマンドを実行するためには,次に示す条件を満たしている必要があります。(a),(b)および(c)の条件を満たしていない場合,pdsdbdefコマンドはエラーになります。SDB定義文ごとにチェック条件が異なります。チェック条件については,「表J-3 チェックが発生するSDB定義文の一覧とそのチェック内容」を参照してください。

(a)SDB定義文で指定する格納RDエリア名

指定された格納RDエリアがオリジナルRDエリアである。

(b)対象のレコード型と関連RDエリアのレプリカRDエリアの複製定義

対象のレコード型と関連RDエリアが複数になる場合,次の条件を満たすかどうか。

  • 各RDエリアのレプリカRDエリアの定義数が同じである。

  • 各RDエリアのレプリカRDエリアを定義した世代が同じである。

(c)RDエリアの状態

対象のレコード型と関連RDエリアが,すべての世代(オリジナルRDエリアも含む)でHiRDB/SD定義ユティリティを実行できる状態である。

RDエリアの状態の確認手順を次に示します。RDエリアの状態ごとのpdsdbdefコマンドの実行可否については,「付録J.2 RDエリアの状態ごとのHiRDB/SD定義ユティリティ(pdsdbdef)の実行可否」を参照してください。

〈この項の構成〉

(1) RDエリアの状態の確認手順

*ENTRY DIRECTORY文,*ALTER DIRECTORY文,*CHECK DICTIONARY文,または*DELETE DICTIONARY文を実行する前に,次の手順に従ってRDエリアの状態を確認します。

  1. レコード型の関連RDエリア(レコード型,およびインデクスを格納するRDエリア)を調べます。

    <*ENTRY DIRECTORY文,*ALTER DIRECTORY文,または*CHECK DICTIONARY文の場合>

    SDBデータベース格納定義に記述するRDエリアを確認します。

    <*DELETE DICTIONARY文の場合>

    pdrdreflsコマンドの-tオプションに各SDBデータベースの任意のレコード型名を指定して,SDBデータベースごとに実行します。

    インデクスを格納するRDエリアにほかのSDBデータベースのレコード型のインデクスが定義されている場合,pdrdreflsコマンドで表示される関連RDエリアには,それらの情報も表示されます。そのため,実際にpdsdbdefコマンドが対象とする関連RDエリアよりも範囲が広い場合があります。-aオプション指定で表示されるレコード型名またはインデクス名から対象RDエリアを判断してください。

  2. 1.で調べたRDエリアで,すべてのオリジナルRDエリアが更新可能状態であることをpddblsコマンドで確認します。

  3. 1.で調べたRDエリアで,レプリカRDエリアの状態をpddblsコマンドで確認します。pdsdbdefコマンドを実行できる条件を次に示します。

    <オリジナルRDエリアがすべてカレントRDエリアである場合>

    すべてのレプリカRDエリアが,各世代内で次のどちらかの状態で統一されている必要があります。

    ・更新可能な状態

    ・コマンド閉塞かつクローズ状態

    <オリジナルRDエリアがカレントRDエリアでない場合>

    (i) pddblsコマンドに-Cオプションを指定して,1.で調べたオリジナルRDエリアのレプリカRDエリアを調べます。

    (ii) pddblsコマンドの-qオプションに(i)のレプリカRDエリアの世代番号を指定して,すべてのレプリカRDエリアのカレントRDエリアが更新可能状態であることを確認します。

    (iii) 上記以外のレプリカRDエリアが,各世代内で次のどちらかの状態で統一されている必要があります。

    ・更新可能な状態

    ・コマンド閉塞かつクローズ状態

    注※

    世代の処理対象となるレコード型に関連するすべてのRDエリアがコマンド閉塞かつクローズ状態の場合は,定義処理がスキップされます。定義処理がスキップされた場合,KFPH22032-Wメッセージが出力されます。定義処理が正常に完了し,KFPH22032-Wメッセージが出力されている場合は,スキップした世代のRDエリアはデータディクショナリ用RDエリアの定義情報と不整合となります。そのため,閉塞を解除する前にRDエリアの再作成が必要になります。詳細については「付録J.3(1) KFPH22032-Wメッセージの出力と対処」を参照してください。