AS400 / IBM i の保守では、プログラムを修正せずに、実行時だけ参照するファイルやメンバーを切り替えたい場面があります。テスト用ファイルで動かしたい、特定メンバーを読ませたい、帳票や調査のために一時的に向き先を変えたい、という場面です。
その時に出てくる代表的なコマンドが OVRDBF です。IBMの資料では、OVRDBFはプログラム内で指定されているデータベースファイル名や、ファイル処理に使う一部パラメータを上書きするためのコマンドとして説明されています。
この記事では、OVRDBFの細かい全パラメータではなく、AS400保守の現場で「何に気をつけて見るか」を整理します。コマンドを目的別に探す場合は、AS400コマンド逆引き も確認してください。
OVRDBFでできること
OVRDBF は、プログラムが開くデータベースファイルを、実行時に別のファイルやメンバーへ向ける時に使います。プログラムを再コンパイルせずに動きを変えられるため、テストや一時対応では便利です。
| 使う場面 | 現場での見方 |
|---|---|
| テスト用ファイルへ向ける | 本番ファイルではなく、検証用ライブラリや検証用ファイルを読ませたい時に使います。 |
| 別メンバーを読む | 物理ファイルの特定メンバーを対象にしたい時に出てきます。 |
| 一時的な調査 | プログラムを変更せずに、入力や出力の向き先を変えて調査する時に使います。 |
| 既存処理の影響確認 | RPGやCLの修正前に、実行時の参照先がソースと違っていないか確認します。 |
OVRDBFで怖いのは「どこで有効か」を見落とすこと
OVRDBFは便利ですが、保守現場では見落とすと怖いコマンドです。ソースだけ見ると本番ファイルを読んでいるように見えても、実行前にOVRDBFされていれば、実際には別ファイルや別メンバーを見ている場合があります。
特にCLからRPGを呼ぶ処理では、CALLの前にOVRDBFが入っていないかを確認します。CLを読む時の基本は AS400のCLとは?CALL・SBMJOB・MONMSGを読む保守確認ポイント でも整理しています。
本番作業で確認するポイント
本番環境でOVRDBFを扱う場合は、対象ジョブ、対象ファイル、対象ライブラリ、有効範囲、解除タイミングを確認します。調査用に入れたオーバーライドが残ったままだと、後続処理が意図しないファイルを見てしまう可能性があります。
| 確認項目 | 理由 |
|---|---|
| 対象ジョブ | どのジョブでOVRDBFが有効なのかを間違えないため。 |
| 対象ファイル | 本番ファイル、テストファイル、別メンバーのどれを見ているか確認するため。 |
| ライブラリ | ライブラリリストの順番で、同名ファイルの参照先が変わることがあるため。 |
| 解除 | 一時対応後にオーバーライドが残っていないか確認するため。 |
DSPFFDやDSPPFMと合わせて確認する
OVRDBFで参照先を切り替える場合、切替先のファイル定義やデータ内容も確認します。フィールド定義を見るなら DSPFFD / DSPPFMの見方、実行結果を追うなら ジョブログ確認手順 も合わせて見ると安全です。
改修前の影響範囲を広く見たい場合は、RPG/CL影響調査チェックリスト も役立ちます。OVRDBFは実行時の切替、DSPPGMREFはプログラム参照の入口、と分けて考えると整理しやすいです。
OVRSCOPEと、現在有効な指定を照合する
| OVRSCOPE | 確認する範囲 |
|---|---|
| *CALLLVL | 指定した呼出しレベルと、それより下の呼出しでの適用 |
| *JOB | ジョブ内の後続処理への残存。別ジョブへそのまま引き継がれると考えない |
| *ACTGRPDFN | デフォルト活性化グループでは呼出しレベル、それ以外では活性化グループの範囲 |
現在のジョブで有効な指定を確認する表示例です。
DSPOVR FILE(*ALL) MRGOVR(*YES)これは、今このコマンドを実行したジョブの表示です。障害が別のバッチジョブなら、そのジョブのWRKJOBからファイル・オーバーライドを確認します。自分の対話ジョブで表示しても、別ジョブの実効指定を証明できません。
解除はDLTOVRの実行位置・指定レベルと異常時経路まで確認します。全解除を一律に追加すると別の処理が必要とする指定まで消すため、原因調査中に解除操作は行いません。IBM公式:OVRDBF、IBM公式:オーバーライドの表示例
OVRDBFで本番事故になりやすいポイント
OVRDBFは便利ですが、ソースだけを見ても実際に読んでいるファイルが分からなくなることがあります。CLの中でCALL前にOVRDBFされている、テスト用メンバーへ向けている、処理後にDLTOVRされていない、別ジョブでは効いていない、という見落としが本番事故につながります。
| 見るポイント | 確認内容 | 起きやすい問題 |
|---|---|---|
| 有効範囲 | OVRSCOPE、呼び出しレベル、活動化グループ、対象ジョブを照合する | *CALLLVL・*JOB・*ACTGRPDFNの違いを確認する。別ジョブへ自動的に引き継がれる設定ではない |
| 対象ファイル | ライブラリ、ファイル、メンバー指定 | CPF4101や古いデータ参照 |
| 解除 | DLTOVRやジョブ終了で戻るか | 後続処理が別ファイルを見る |
| テスト運用 | 本番ファイルとテストファイルの切替 | 検証結果と本番結果が合わない |
OVRDBFが原因でファイルを開けない場合はCPF4101の確認ポイント、ファイル定義を見る場合はDSPFFD / DSPPFMの見方も確認してください。
