AS400 CPF4101の調査例|ファイルが見つからない時に見る順番

AS400 / IBM i の保守で CPF4101 が出た時は、「ファイルが無い」と決めつける前に、どのジョブが、どのライブラリリストで、どのファイル名を探したのかを確認します。同じ名前のファイルが本番、検証、退避ライブラリにある現場では、単純な存在確認だけでは原因を外すことがあります。

この記事では、受注バッチでCPF4101が出たケースを想定し、現場で見る順番を実例として整理します。

想定する状況

項目
発生処理夜間の受注更新バッチ
症状ジョブが異常終了し、ジョブログにCPF4101が出ている
対象RPGプログラムが参照する注文ファイル
最初に疑うことファイル未存在、ライブラリリスト違い、OVRDBF、メンバー違い、前後メッセージに出るCPF9802などの権限関連、またはロック関連の異常

最初にジョブログを見る

まず WRKJOBDSPJOBLOG で対象ジョブのジョブログを開きます。最後の異常終了メッセージだけでなく、CPF4101の前後に出ているプログラム名、ファイル名、ライブラリ名を確認します。

DSPJOBLOG
WRKJOB JOB(123456/USER/ORDUPD)

確認する順番

順番確認理由
1ジョブログのCPF4101行対象ファイル名、ライブラリ名、プログラム名を拾う
2DSPLIBL*LIBLで探している場合、参照順を確認する
3WRKOBJ同名ファイルがどのライブラリにあるか確認する
4DSPFD / DSPFFDPF/LF、メンバー、フィールド定義を見る
5CLのOVRDBF参照先を一時変更していないか確認する
6RPGのF仕様書RPGがどの外部記述ファイル名で開こうとしているか確認する

よくある原因

  • 検証ライブラリでは存在するが、本番ライブラリには存在しない
  • ライブラリリストの順序が想定と違う
  • CLのOVRDBFで別ファイルへ向けている
  • 夜間バッチ用ユーザーだけ権限やライブラリリストが違う
  • 物理ファイルではなく論理ファイルを探している

やってはいけない対応

原因が分からないまま、似た名前のファイルを本番ライブラリへコピーしたり、ライブラリリストをその場で変更したりするのは危険です。後続バッチや別プログラムが同じファイル名を参照している場合、別の障害を作ることがあります。

関連して読む記事

ジョブログの基本は AS400のジョブログ確認手順、ライブラリ確認は ライブラリとオブジェクト、PF/LFの確認は 物理ファイルと論理ファイル を参照してください。

CPF4101は「ファイルがない」だけでなく、ライブラリ順序まで確認する

CPF4101はファイルが存在しない時に出る代表的なメッセージですが、実際の原因は「本当にオブジェクトがない」だけではありません。ジョブのライブラリリスト、実行ユーザー、テスト環境と本番環境の差、前処理で作成される一時ファイルの有無まで見る必要があります。

見る順番確認内容判断のポイント
1. メッセージ詳細対象ファイル名、ライブラリ名、実行プログラムを確認するファイル名だけで判断しない
2. ライブラリリスト実行時のLIBLに対象ライブラリが入っているか確認するライブラリリスト確認
3. オブジェクト存在対象ファイルが本当に存在するか、権限で見えないだけではないかを見るオブジェクトとライブラリ
4. 前処理一時ファイルやワークファイルを作る処理が正常終了しているか確認する直前ジョブのジョブログを見る
5. 教育・引き継ぎ同じ調査順を若手や後任が再現できる形にする研修内容を見る

調査メモには、エラーになったファイル名だけでなく、ジョブ名、ユーザー、ライブラリリスト、直前に実行したメニューやバッチ名を残しておくと再発時に役立ちます。AS400の障害対応では、メッセージIDと実行環境をセットで見ることが大切です。

まとめ

CPF4101は、ファイルそのものが無い場合だけでなく、ライブラリリスト、OVRDBF、メンバー違い、PF/LFの取り違えでも発生します。権限関連はCPF9802など前後メッセージを分けて確認します。ジョブログから対象を拾い、DSPLIBL、WRKOBJ、DSPFD、CL、RPGの順で確認すると、原因を外しにくくなります。