11.3.5 dirinf文(SDBディレクトリ情報ファイルの作成および配布)
dirinf文には,SDBディレクトリ情報ファイルの作成および配布についての情報を指定します。
- ポイント
-
-
作成したSDBディレクトリ情報ファイルは,全ユニットに配布する必要があります。
-
配布先は,ユニット制御情報定義のpd_structured_directory_pathオペランドに指定したディレクトリ下となります。
-
SDBディレクトリ情報ファイルの作成と配布を1回のpdsdbdefコマンドで実行できます。また,SDBディレクトリ情報ファイルの作成だけを実行することもできますし,配布だけを実行することもできます。
-
全ユニットに配布したSDBディレクトリ情報ファイル中のSDBディレクトリ情報が,HiRDBの開始時に共用メモリ上の常用常駐領域に格納されます。これによって,SDBデータベースにアクセスできるようになります。また,HiRDBの稼働中に,pdsdbarcコマンドでSDBディレクトリ情報を更新することができます。pdsdbarc -eコマンドでSDBディレクトリ情報を事前常駐領域に格納してから,pdsdbarc -w -qコマンドで事前常駐領域を常用常駐領域に切り替えることでSDBディレクトリ情報を更新します。
(1) 適用条件
次の場合にdirinf文を指定します。
-
SDBディレクトリ情報ファイルを作成する場合
-
SDBディレクトリ情報ファイルを各ユニットに配布する場合
なお,上記の2つの操作を同時に実行することもできます。
(2) 形式
dirinf△SDBディレクトリ情報ファイルの格納ディレクトリ [generate={yes|no}] [transfer={yes|no} [checkmode={match|range}] [unit=ユニット名[,ユニット名]…]
△は,空白またはタブを区切り文字として,1つ以上指定する必要があることを意味しています。
(3) 説明
- ●SDBディレクトリ情報ファイルの格納ディレクトリ
-
〜<パス名>
SDBディレクトリ情報ファイルの格納ディレクトリを指定します。ファイル名を含まない絶対パスで指定してください。
SDBディレクトリ情報ファイルを作成する場合は,ここで指定したディレクトリ下にSDBディレクトリ情報ファイルが出力されます。
SDBディレクトリ情報ファイルを配布する場合は,ここで指定したディレクトリ下のSDBディレクトリ情報ファイルが配布されます。
≪留意事項≫
-
SDBディレクトリ情報ファイルのファイル名は,「pdsdbdir」固定です。ファイル名は変更しないでください。
-
相対パスで指定した場合や,指定したパスが存在しない場合は,pdsdbdefコマンドの実行がエラーになります。
-
SDBディレクトリ情報ファイルの容量によっては,SDBディレクトリ情報ファイルの格納ディレクトリを圧迫するおそれがあります。そのため,HiRDB運用ディレクトリ以外のディレクトリを指定することを推奨します。
-
- ●generate={yes|no}
-
SDBディレクトリ情報ファイルを作成するかどうかを指定します。
yes:SDBディレクトリ情報ファイルを作成します。
no:SDBディレクトリ情報ファイルを作成しません。
yesを指定するか,または指定を省略した場合,SDBディレクトリ情報ファイルの格納ディレクトリ下にSDBディレクトリ情報ファイルが出力されます。
≪留意事項≫
-
SDBディレクトリ情報ファイルの格納ディレクトリ下にSDBディレクトリ情報ファイルが存在する場合,SDBディレクトリ情報ファイルは上書き更新されます。
-
*ENTRY DIRECTORY文で1つもSDBディレクトリ情報を登録していない場合に,SDBディレクトリ情報ファイルを作成しても,管理情報だけが格納されたSDBディレクトリ情報ファイルが作成されるため,SDBディレクトリ情報ファイルを作成しても意味がありません(そのSDBディレクトリ情報ファイルは使用できません)。
-
SDBディレクトリ情報ファイルの格納ディレクトリ下にSDBディレクトリ情報ファイルが存在するときでも,SDBディレクトリ情報ファイルの作成中にエラーが発生した場合は,SDBディレクトリ情報ファイルは削除されます。
-
- ●transfer={yes|no}
-
SDBディレクトリ情報ファイルを配布するかどうかを指定します。
yes:SDBディレクトリ情報ファイルを配布します。
no:SDBディレクトリ情報ファイルを配布しません。
yesを指定した場合,SDBディレクトリ情報ファイルの格納ディレクトリ下のSDBディレクトリ情報ファイルを,全ユニットに配布します。特定のユニットに対してだけSDBディレクトリ情報ファイルを配布したい場合は,unitオペランドを指定してください。
なお,高速系切り替え機能を使用している場合は,待機系ユニットも配布対象になります。
配布先は,ユニット制御情報定義のpd_structured_directory_pathオペランドに指定したディレクトリ下となります。
- 注意事項
-
ディザスタリカバリシステムのリモートサイトは配布対象外です。リモートサイトにSDBディレクトリ情報ファイルを配布する方法については,「8.3.1(2) 「6. SDB ディレクトリ情報ファイルをリモートサイトに転送する」の作業」を参照してください。
- ●checkmode={match|range}
-
SDBディレクトリ情報ファイルを配布する場合(transfer = yesを指定した場合)にこのオペランドを指定します。
配布するSDBディレクトリ情報ファイル中のSDBディレクトリ情報の最終更新日時のチェックレベルを指定します。SDBディレクトリ情報ファイルを配布する前に,次の1.と2.の最終更新日時を比較します。
-
配布するSDBディレクトリ情報ファイル中のSDBディレクトリ情報の最終更新日時
-
ディクショナリ表中のSDBディレクトリ情報の最終更新日時
- match:
-
1.と2.の最終更新日時を比較し,最終更新日時が同じ場合に限り,SDBディレクトリ情報ファイルを配布します。
- range:
-
1.と2.の最終更新日時を比較し,最終更新日時が同じ場合にSDBディレクトリ情報ファイルを配布します。
また,1.の最終更新日時が古い場合でも,SDBディレクトリ情報ファイルを配布します。
≪指定値の目安≫
-
通常は,matchを指定してください。
-
障害発生時,一時的に旧SDBディレクトリ情報ファイルを使用するために配布する場合にrangeを指定してください。
≪留意事項≫
-
システム共通定義のpd_structured_advance_residentオペランドにnouseを指定するか,またはpd_structured_advance_residentオペランドを省略した場合,checkmodeオペランドにrangeを指定することはできません。
-
配布するSDBディレクトリ情報ファイル中のSDB定義文の最終更新日時と,ディクショナリ表中のSDB定義文の最終更新日時が異なる場合は,1.と2.の最終更新日時が同じであっても,SDBディレクトリ情報ファイルを配布しません。
-
- ●unit=ユニット名[,ユニット名]…
-
特定のユニットに対してだけSDBディレクトリ情報ファイルを配布したい場合に,このオペランドを指定します。このオペランドを省略した場合は,全ユニットにSDBディレクトリ情報ファイルが配布されます。
例えば,一部のユニットに対してSDBディレクトリ情報ファイルが配布されなかった場合に,そのユニットに対してSDBディレクトリ情報ファイルを再配布するときにこのオペランドを指定してください。
≪留意事項≫
-
このオペランドは,SDBディレクトリ情報ファイルの配布だけをする場合に限り指定できます。このオペランドを指定する場合は,次のオペランドが指定されている必要があります。
generate = no
transfer = yes
-
ユニット名は,最大64個指定できます。
-
(4) 指定例
dirinf文の指定例を次に示します。
- 例1
-
SDBディレクトリ情報ファイルを作成して,全ユニットに配布します。
dirinf /usr/sdb_dir generate=yes transfer=yes checkmode=match
- 例2
-
作成済みのSDBディレクトリ情報ファイルを全ユニットに配布します。
dirinf /usr/sdb_dir generate=no transfer=yes checkmode=match
- 例3
-
SDBディレクトリ情報ファイルを特定のユニット(UNT3)に配布します(SDBディレクトリ情報ファイルの作成はしません)。
dirinf /usr/sdb_dir generate=no transfer=yes checkmode=match unit=UNT3
(5) 記述規則
-
SDB制御文の1行の行長を超えない範囲内であれば,複数のオペランドを1行にまとめて記述できます。この場合,各オペランドの間に,空白またはタブを区切り文字として1つ以上指定する必要があります。
-
各オペランドは,形式で説明している順序のとおりに指定してください。
(6) 注意事項
-
dirinf文の実行時にエラーが発生した場合(SDBディレクトリ情報ファイルの作成および配布処理でエラーが発生した場合),SDB定義文の処理はロールバックされないため,SDBデータベースの定義は追加,変更,削除されています。そのため,SDBディレクトリ情報ファイルの作成および配布をするために,再度pdsdbdefコマンドを実行する場合は,SDB制御文を変更する必要があります。
-
SDBディレクトリ情報ファイルを配布する際,pd_structured_direcotry_pathオペランドに指定したディレクトリ下,またはワークディレクトリ下に次の形式のディレクトリまたはファイルがある場合,そのディレクトリまたはファイルを削除対象とします。そのため,pd_structured_direcotry_pathオペランドに指定したディレクトリ下,またはワークディレクトリ下には,ユーザが作成したファイルを保管しないことを推奨します。
-
"SDBDEF-AS_プロセスID_プロセス開始時刻"の形式をしたディレクトリ名
-
"SDBDEF-AD_ユニット名"の形式をしたディレクトリ名
-
"SDBDEF-run"のファイル名
-
"SDBDEF-skip"のファイル名
-
"SDBDEF-result+"で始まるファイル名
-
"SDBDEF-tmp_"で始まるファイル名
-
"pdsdbdir_bk_"で始まるファイル名
なお,ワークディレクトリとは,次のディレクトリを意味しています。
-
ユニット制御情報定義のpd_tmp_directoryオペランドに指定したディレクトリ
-
環境変数TMPDIRに指定したディレクトリ
-
/tmp
-