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