AS400 / IBM i で「ファイル使用中」「オブジェクトがロックされている」「処理が進まない」と出た時、すぐにジョブを終了すると、業務データや後続処理に影響することがあります。ロックは障害にも見えますが、正常な更新処理の途中である場合もあります。
ロック時の確認順
| 確認 | 見るもの | 判断 |
|---|---|---|
| 対象 | ファイル、プログラム、ライブラリ | 何がロックされているか |
| 保持ジョブ | WRKOBJLCK、ジョブ名、ユーザー | 誰がロックしているか |
| 状態 | 実行中、LCKW、MSGW | 処理中か、待っているか |
| 業務影響 | 締め処理、出荷確定、帳票 | 止めると何が壊れるか |
| 終了判断 | ジョブログ、担当者、承認 | 強制終了してよいか |
強制終了の前に業務を確認する
ロックしているジョブを見つけても、すぐに終了するのは危険です。更新途中、締め処理中、外部連携中の場合、強制終了で後続処理が壊れることがあります。ジョブログと業務担当者への確認を挟みます。
遅い原因がロックのこともある
利用者には「遅い」「固まった」と見えていても、裏ではロック待ちになっていることがあります。WRKACTJOBでLCKWが目立つ場合は、待っているジョブだけでなく保持しているジョブを追います。
性能劣化の初動は AS400が遅い時の確認手順、本番障害は AS400本番障害の初動チェックリスト、本番反映と戻しは AS400本番反映・戻し手順チェックリスト を参照してください。
Codexには匿名化して渡す
ロック調査でCodexを使う場合は、ジョブ名やファイル名を匿名化し、状態、発生時刻、確認済み項目だけを渡します。AIには確認順の整理を任せ、ジョブ終了や再実行の判断は人が行います。
関連するAS400確認ルート
オブジェクトロックやファイル使用中は、WRKOBJLCKで誰が使っているかを見るだけでは足りません。止めてよいジョブか、締め処理中か、外部連携中かを判断してから対応します。
ロック解除より先に「誰が何をしているか」を見る
オブジェクトロックやファイル使用中のエラーでは、ロックしているジョブを止めればよいとは限りません。画面入力中、夜間バッチ中、外部連携中、帳票作成中など、業務上必要な処理が持っているロックかもしれません。私は、WRKOBJLCKでジョブを見た後、ジョブログと実行ユーザー、開始時刻を確認します。
- ロックしているジョブ名とユーザーを確認する
- 対話ジョブかバッチジョブかを分ける
- 止める前に業務担当者へ影響を確認する
- 同じロックが繰り返すなら処理順や締め時刻を見直す
オブジェクトロック調査で見る順番
AS400 / IBM i で「ファイルが使用中」「オブジェクトがロックされている」と言われた場合は、すぐにジョブを止めるのではなく、誰が何の目的で掴んでいるのかを確認します。WRKOBJLCKで対象オブジェクトを確認し、ジョブ名、ユーザー、ロック状態、実行中の処理を分けて見ると、業務影響を判断しやすくなります。
| 確認順 | 見る内容 | 判断ポイント |
|---|---|---|
| 1 | 対象ライブラリ・ファイル名 | 本番とテストを取り違えていないか |
| 2 | ロックしているジョブ・ユーザー | 対話処理か、バッチ処理か、外部連携か |
| 3 | ジョブの状態 | 実行中、MSGW、待機、長時間処理のどれか |
| 4 | 業務影響 | 出荷、請求、在庫、締め処理に影響するか |
| 5 | 解除判断 | 終了してよいジョブか、担当者確認が必要か |
ロック解除は、影響が小さく見えても慎重に判断します。特に夜間バッチ、締め処理、外部連携の途中でジョブを止めると、データ不整合や再送処理が必要になる場合があります。若手担当者へ教える時は、コマンド操作だけでなく「止めてよいかを判断する材料」を一緒に残すことが重要です。
夜間更新がファイル使用中で止まる想定例
夜間バッチがファイル使用中で待つ場合、ロックしているジョブを見つけても、すぐ終了させてはいけません。正当な更新処理か、残存ジョブかを確認します。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| 保持者 | WRKOBJLCKなどでジョブ名、ユーザー、番号を特定する | 対話ジョブ、バッチ、サーバージョブのどれかを分ける |
| 利用状況 | 対象ジョブの状態、処理内容、開始時刻、直前メッセージを確認する | 長時間処理中か、応答待ちや異常停止の残りかを判断する |
| 影響 | 終了した場合の未完了更新、後続処理、再実行可否を確認する | 業務責任者と運用担当の承認なしに終了しない |
ロック解除だけを目的にジョブを終えると、データ更新が途中で切れる場合があります。解除後は待機ジョブが進んだかだけでなく、保持側と待機側の処理結果を両方確認します。
ファイル使用中エラーを調べる時の確認表
ファイル使用中のエラーは、ジョブの競合、対話画面の開きっぱなし、バッチ処理中、バックアップ中など複数の原因で起こります。先に状況を分けると対応を誤りにくくなります。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| 保持元 | WRKOBJLCKで保持ジョブ、ユーザー、ロック状態を確認する | 画面操作中かバッチ中かで連絡先を変える |
| 処理内容 | DSPJOBやDSPJOBLOGで現在実行中のCL、RPG、SQLを確認する | 処理中なら強制終了せず完了見込みを確認する |
| 再実行 | 待機、画面終了、再実行、運用時間変更のどれで解消するか整理する | 再発する場合はジョブスケジュールや排他設計を見直す |
「誰が掴んでいるか」だけでなく「なぜその時間に掴むのか」まで残すと、同じファイル使用中エラーを減らせます。
