AS400 / IBM i のジョブログを見ていると、CPF で始まるメッセージをよく見ます。CPFは範囲が広く、ファイル、ライブラリ、オブジェクト、権限、ジョブ、スプール、CLのエラー処理など、いろいろな場面で出ます。
このページでは、AS400初心者や保守担当者向けに、現場で見かけやすいCPFメッセージと、最初に確認するポイントを整理します。厳密な意味は環境やメッセージの詳細で変わるため、実際の対応では必ずジョブログの前後、詳細メッセージ、対象ライブラリ、対象ファイルを確認してください。
現場目線の基本 CPF番号だけで判断しないこと。最後に出ているCPFは「結果」で、原因はその前に出ている別メッセージや、CL/RPGの呼び出し順にあることがあります。
実例でジョブログを読みたい場合 CPF・RNX・MSGWが出た時の読み方は、AS400ジョブログ実例集 にまとめています。最後のエラーだけで判断しない練習になります。
CPFエラーを見る時の最初の確認順
- ジョブログの一番下だけでなく、前後のメッセージを見る
- メッセージID、重大度、発生プログラム、発生時刻を確認する
- 対象のライブラリ、ファイル、オブジェクト名を確認する
- 本番環境かテスト環境か、ライブラリリストが正しいかを見る
- CL全体の呼び出し順、MONMSG、後続処理を確認する
よく見るCPFメッセージと確認ポイント
| CPF | 現場で疑うこと | 最初に見るポイント | 関連 |
|---|---|---|---|
CPF0000 | 実際のエラー番号ではなく、MONMSGで全CPFをまとめて拾っている指定として見ることが多い | 本当に握りつぶしてよい処理か、後続処理が走って問題ないかを確認する | CL保守 |
CPF2105 | オブジェクトやライブラリ操作まわりで見かけることがある | 対象名、ライブラリ、権限、すでに存在するかどうかを確認する | ライブラリ確認 |
CPF3101 | ファイルやメンバーの使用状態、アクセス状態が関係することがある | 誰かがファイルをつかんでいないか、ジョブやロック状態を確認する | WRKACTJOB |
CPF4101 | ファイルが見つからない、指定先が違う、ライブラリリストが違う時に疑う | 対象ファイル、ライブラリ、*LIBL、コンパイル環境と実行環境の差を見る | DSPFFD/DSPPFM |
CPF4131 | ファイルのレベルチェックや定義不一致を疑う場面がある | PF/LF、DDS変更、コンパイルし直し漏れ、実行環境のファイル定義を確認する | PF/LF |
CPF5009 | レコード、ファイル、入出力処理まわりの異常として見ることがある | どのファイル操作で出たか、直前の処理、RPG側のファイル使用を確認する | RPG保守 |
CPF5026 | レコードロックや更新処理のタイミングを疑う場面がある | 他ジョブが同じレコードやファイルを使用していないかを見る | MSGW返答判断 |
CPF5035 | データ更新、レコード処理、ファイルアクセスまわりの問題として見ることがある | 入力データ、更新対象、後続処理、リカバリー範囲を確認する | データリカバリー |
CPF9801 | オブジェクトが見つからない、参照先が違う時に疑う | オブジェクト名、ライブラリ名、*LIBL、権限を確認する | コマンド逆引き |
CPF9810 | ライブラリが見つからない、指定ライブラリが違う時に疑う | ライブラリ名の打ち間違い、環境違い、本番/テストの指定違いを確認する | ライブラリとは |
CPF9898 | プログラム側で送られる汎用的なメッセージとして見ることがある | メッセージ文そのもの、送信元プログラム、前後の処理を確認する | ジョブログ確認 |
CPF0000を見た時は特に注意する
CPF0000 は、CLの MONMSG CPF0000 のような形で見ることがあります。これは「CPF系をまとめて拾う」指定として使われることがあり、便利な反面、危険でもあります。
たとえば CLRPFM の後ろに MONMSG CPF0000 があり、誰かがファイルをつかんでいてクリアできなかったとします。そのまま後続処理が走ると、古いデータが残った状態で二重処理のような事故につながることがあります。フォルダ作成のように「すでに存在していたら無視してよい」処理なら許容できることもありますが、データ更新系で安易に使うのは怖いです。
ファイル系CPFで見るポイント
ファイル系のCPFでは、対象ファイルが存在するか、ライブラリリストが正しいか、コンパイルした環境と実行環境が合っているかを確認します。販売管理システムでは、入力系やデータ作成系のファイルでエラーが出ると後続処理に影響しやすいため、単に「ファイルがない」で終わらせず、どの業務処理が止まるかまで見ます。
自分なら、まず DSPLIBL、WRKOBJ、DSPFFD、DSPPFM などで、対象ファイルとライブラリの状態を確認します。本番対応では、ライブラリ名の目視確認がとにかく大事です。
オブジェクト・ライブラリ系CPFで見るポイント
オブジェクトやライブラリが見つからない系のCPFでは、名前の指定ミス、ライブラリリストの違い、権限不足、環境違いを疑います。テスト環境では動いたのに本番で動かない場合、見ているライブラリが違うことがあります。
AS400では、ライブラリリストの上から順番にオブジェクトやファイルを参照します。そのため、同じ名前のオブジェクトが複数ライブラリにある場合、想定と違うものを見ている可能性があります。CPFを見たら、メッセージだけでなく実行時のライブラリリストまで確認した方が安全です。
CPFエラーで後続処理を止めるかどうか
CPFエラーが出たからといって、すぐに全部止めるとは限りません。ただし、後続処理がデータ作成、売上計上、請求、外部連携につながる場合は慎重に見ます。CL全体を確認し、どこまで処理済みか、どこから再実行できるか、二重処理にならないかを確認します。
特に本番では、作業者、バックアップ、環境、対象ファイル、ライブラリリストを確認してから判断します。焦って作業すると、単なるエラー対応がデータリカバリー案件に変わります。