10.9.1 pdsdbarc(SDBディレクトリ情報の常駐化および最終更新日時のチェック)
- 〈この項の構成〉
(1) 機能
pdsdbarcコマンドには次に示す機能があります。
-
SDBディレクトリ情報を事前常駐領域に常駐する。
-
SDBディレクトリ情報の最終更新日時のチェックを行う。
-
SDBディレクトリ情報に関する情報を表示する。
-
事前常駐領域を常用常駐領域に切り替える。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
■SDBディレクトリ情報の事前常駐領域への常駐,最終更新日時のチェック,または情報表示の場合
pdsdbarc {-e|-c|-a}〔-u ユニット識別子〔,ユニット識別子〕…〕
■事前常駐領域を常用常駐領域に切り替える場合
pdsdbarc -w -q
(4) オプション
-
-e
SDBディレクトリ情報ファイルからSDBディレクトリ情報を読み込み,事前常駐領域に常駐します。
HiRDB/SDは,事前常駐領域中のSDBディレクトリ情報の最終更新日時と,ディクショナリ表中のSDBディレクトリ情報の最終更新日時をチェックします。チェックの結果,ディクショナリ表中のSDBディレクトリ情報の最終更新日時の方が古い場合,事前常駐領域中のSDBディレクトリ情報を無効状態にします。この場合,出力されたメッセージの対処に従ってください。
-
-c
常用常駐領域中のSDBディレクトリ情報の最終更新日時のチェックを行います。
HiRDB/SDは,常用常駐領域中のSDBディレクトリ情報の最終更新日時と,ディクショナリ表中のSDBディレクトリ情報の最終更新日時をチェックします。チェックの結果,ディクショナリ表中のSDBディレクトリ情報の最終更新日時の方が古い場合,常用常駐領域中のSDBディレクトリ情報を無効状態にします。この場合,出力されたメッセージに従って対処してください。SDBディレクトリ情報が無効状態になったユニットではSDBデータベースへのアクセスができなくなります。
- 注意事項
-
チェックの結果によっては,常用常駐領域中のSDBディレクトリ情報が無効になることがあります。そのため,業務実行中にpdsdbarc -cコマンドを実行しないようにしてください。pdsdbarc -cコマンドは,HiRDBの開始直後など,業務実行中でないときに実行するようにしてください。
-
-a
ディクショナリ表,SDBディレクトリ情報ファイル,事前常駐領域,および常用常駐領域のSDBディレクトリ情報に関する情報を表示します。
-
-u ユニット識別子〔,ユニット識別子〕…
pdsdbarcコマンドの処理対象とするユニットのユニット識別子を指定します。-uオプションを省略した場合,全ユニットがpdsdbarcコマンドの処理対象になります。
なお,複数のユニット識別子を指定する場合は,コンマの前後に空白を入力しないでください。
-
-w -q
事前常駐領域を常用常駐領域に切り替え,常用常駐領域を事前常駐領域に切り替えます。
pdsdbarc -w -q コマンドは,事前常駐領域にSDBディレクトリ情報が正しく常駐されているユニットに対してだけ実行できます。事前常駐領域のSDBディレクトリ情報が無効状態の場合は,その事前常駐領域を常用常駐領域に切り替えることはできません。
- 注意事項
-
pdsdbarc -w -qコマンドを実行する前に次に示すことを確認してください。
-
トランザクションが静止化している。トランザクションの静止化方法については,「5.7.3(8) トランザクションを静止化する」を参照してください。
-
実行中のコマンドおよびユティリティがない。
-
ロールバック中のトランザクションがない。
-
常駐領域の切り替え後,事前常駐領域中のSDBディレクトリ情報は無効状態になります。そのため,pdsdbarc -w -qコマンドの実行後,再度pdsdbarc -w -qコマンドを実行することはできません。
(5) 規則
-
pdsdbarcコマンドは,HiRDBが稼働中のときに実行できます。
-
pdsdbarcコマンド(-e,-c,および-a指定)を実行する場合は,次に示すクライアント環境定義を指定しておく必要があります。
-
PDUSER:CONNECT権限を持ったユーザの認可識別子とパスワードを指定します。
このとき,OSログインユーザの簡易認証機能は使用できません。
-
-
pdsdbarcコマンド(-e,-c,および-a指定)は,システムマネジャがあるサーバマシンで実行してください。
-
pdsdbarc -w -qコマンドは,コマンドの実行対象とするユニットがある各サーバマシンで実行してください。
-
pdsdbarcコマンドのリターンコードが0の場合は,pdsdbarcコマンドは正常終了しています。0以外の場合はpdsdbarcコマンドが異常終了しています。出力されたメッセージに従って対処してください。
(6) 留意事項
-
pdsdbarcコマンドは複数同時に実行できません。あとから実行しようとしたpdsdbarcコマンドはエラーになります。
-
pdsdbarcコマンド(-eまたは-w -qオプション指定)を実行する場合は,pd_structured_advance_residentオペランドにuseを指定している必要があります。useを指定していない場合,pdsdbarcコマンドは実行できません。
-
高速系切り替え機能を使用している場合,実行系ユニットだけがpdsdbarcコマンドの処理対象になります。待機系ユニットは処理対象になりません。
-
-uオプションの指定を省略するか,または-uオプションに複数のユニットを指定した場合,1つのユニットに対するコマンド処理が失敗しても処理を続行し,次のユニットに対してコマンド処理を行います。ただし,通信障害が発生した場合は,コマンド処理を行いません。
-
pdsdbarcコマンド(-e,-c,および-a指定)を実行する場合は,次に示すクライアント環境定義の指定は無視されます。
-
PDSQLTRACE
-
PDVWOPTMODE
-
PDCLTAPNAME
-
PDAUTORECONNECT
-
(7) リターンコード
pdsdbarcコマンドのリターンコードを次に示します。
-
0:pdsdbarcコマンドが正常終了しました。
-
4:pdsdbarcコマンドが異常終了しました。ただし,一部のユニットに対しては処理が完了しています。または,警告メッセージが出力されています。
-
8:pdsdbarcコマンドが異常終了しました。
(8) 出力形式
pdsdbarcコマンドの実行結果(標準出力への出力形式)について説明します。
(a) pdsdbarc -eコマンドの実行時(SDBディレクトリ情報を事前常駐領域に常駐する場合)
KFPB31011-Iメッセージの出力内容の各項目については,「(9) pdsdbarcコマンドの実行結果の出力内容」を参照してください。
(b) pdsdbarc -cコマンドの実行時(SDBディレクトリ情報の最終更新日時をチェックする場合)
■チェックの結果,整合性が取れている場合の例
KFPB31012-Iメッセージの出力内容の各項目については,「(9) pdsdbarcコマンドの実行結果の出力内容」を参照してください。
■チェックの結果,整合性が取れていない場合の例
(c) pdsdbarc -aコマンドの実行時(SDBディレクトリ情報に関する情報を表示する場合)
KFPB31019-IおよびKFPB31020-Iメッセージの出力内容の各項目については,「(9) pdsdbarcコマンドの実行結果の出力内容」を参照してください。
(d) pdsdbarc -w -qコマンドの実行時(事前常駐領域を常用常駐領域に切り替える場合)
ユニットunt1の事前常駐領域を常用常駐領域に切り替えた例です。
(9) pdsdbarcコマンドの実行結果の出力内容
pdsdbarcコマンドの実行結果の出力内容を次の表に示します。
出力情報 |
説明 |
---|---|
unit |
ユニット識別子 |
kind |
SDBディレクトリ情報の格納場所
|
time stamp |
SDBディレクトリ情報の最終更新日時 ( )内はSDB定義文の最終更新日時 |
state |
SDBディレクトリ情報の状態
|
(10) ディクショナリ表中の最終更新日時とSDBディレクトリ情報ファイル中の最終更新日時が異なる場合のSDBデータベースへのアクセス制限
SDBデータベースへのアクセスが実行される際,HiRDB/SDはディクショナリ表中の次に示す最終更新日時と,SDBディレクトリ情報ファイル中の次に示す最終更新日時が一致しているかどうかを確認しています。
-
SDB定義文の最終更新日時
-
SDBディレクトリ情報の最終更新日時
ディクショナリ表中の上記2つの最終更新日時と,SDBディレクトリ情報ファイル中の上記2つの最終更新日時が一致している場合は,SDBデータベースにアクセスできます。一方,ディクショナリ表中の上記2つの最終更新日時と,SDBディレクトリ情報ファイル中の上記2つの最終更新日時が両方とも一致していない場合は,SDBデータベースにアクセスできません。
なお,次に示す場合は,一部のレコード型にアクセスできません。
- SDB定義文の最終更新日時は一致しているが,SDBディレクトリ情報の最終更新日時が一致していない場合
-
- 参考
-
HiRDBの再起動を必要としないSDBデータベースの定義追加または定義変更をしてから,事前常駐領域を常用常駐領域に切り替えるまでの間は,上記の状態になります。
- (例1)レコード型の追加の場合
-
上記のようにレコード型を追加した場合,アクセスできるレコード型は次のようになります。
アクセス対象
pd_structured_advance_residentオペランドの指定値
アクセス可否
SDBデータベース
レコード型
DB01
REC_A
use
○
REC_B
○
REC_C
○
REC_D
×※1
DB02
REC_X
×※1
REC_Y
×※1
DB01
REC_A
nouseまたは省略
×※2
REC_B
×※2
REC_C
×※2
REC_D
×※2
DB02
REC_X
×※2
REC_Y
×※2
- (例2)RDエリアの追加の場合
-
上記のように格納RDエリアを追加した場合,アクセスできるRDエリアのレコード型は次のようになります。
アクセス対象
pd_structured_advance_residentオペランドの指定値
アクセス可否
格納RDエリア
レコード型
RDAREA01
REC_A
use
○
REC_B
○
REC_C
○
RDAREA02
REC_A
○
REC_B
○
REC_C
○
RDAREA03
REC_A
×※1
REC_B
×※1
REC_C
×※1
RDAREA01
REC_A
nouseまたは省略
×※2
REC_B
×※2
REC_C
×※2
RDAREA02
REC_A
×※2
REC_B
×※2
REC_C
×※2
RDAREA03
REC_A
×※2
REC_B
×※2
REC_C
×※2