AS400(IBM i)のバッチ処理では、ジョブを投入する SBMJOB、投入済みジョブを確認する WRKSBMJOB、ジョブ記述を確認する DSPJOBD をセットで覚えると、調査の流れがつかみやすくなります。
バッチ処理は画面から見えにくいので、初心者は「投入したはずなのに動いているのか分からない」「どのジョブ待ち行列に入ったのか分からない」となりがちです。現場では、投入、確認、ジョブ記述の前提確認を分けて見ます。
SBMJOBで見るところ
SBMJOBは、コマンドをジョブとして投入する画面です。実行するコマンド、ジョブ名、ジョブ記述、ジョブ待ち行列、出力先を確認します。
WRKSBMJOBで見るところ
WRKSBMJOBは、投入済みジョブを確認する画面です。投入されたジョブが待ち状態なのか、実行済みなのか、スプールが出ているのかを追う時に使います。
DSPJOBDで見るところ
DSPJOBDはジョブ記述の設定を表示します。ジョブの開始時に使う前提を調べるもので、稼働中ジョブの現在値をそのまま示すものではありません。投入時の指定や実行中の変更もあるため、実際の属性・ライブラリリストは対象ジョブを指定したWRKJOBなどで確認します。
バッチ調査の確認順
| 順番 | 見るもの | 判断すること |
|---|---|---|
| 1 | 既存の投入定義・実行記録 | どのコマンド、ジョブ名、ジョブ記述で投入されたかを読む。SBMJOBを実行して調べ直さない |
| 2 | WRKSBMJOB | 投入済みジョブが存在するか、待ちか、実行済みか |
| 3 | WRKACTJOB | 活動中ジョブとして動いているか、MSGWになっていないか |
| 4 | WRKJOB / WRKSPLF | ジョブログ、帳票、コンパイルリストなどのスプールを確認する |
| 5 | DSPJOBD | ジョブ待ち行列、出力先、実行前提が正しいか |
初心者が注意すること
バッチ処理では、投入しただけで安心しないことが大事です。投入後に本当に動いているのか、MSGWで止まっていないか、スプールにエラーが出ていないかを確認します。
販売管理システムでは、受注、出荷、在庫引当、売上計上、請求、物流連携などがバッチでつながることがあります。どこか一つが止まると後続処理に影響するため、単独のジョブだけでなく、前後の処理も見ます。
関連して読む記事
夜間バッチで怖いのは翌朝に気づくこと
販売管理の夜間バッチでは、受注、出荷、在庫、売上、請求、EDIなど後続処理につながることがあります。1本のジョブが止まっただけに見えても、翌朝の業務開始時に「出荷できない」「請求データがない」「連携が届いていない」として表面化する場合があります。
- 投入したジョブが待ち行列に残っていないか
- MSGWや異常終了で止まっていないか
- スプールに処理結果やジョブログが出ているか
- 一部更新済みのまま再投入してよいか
- 後続の出荷、請求、EDIへ影響していないか
SBMJOBしたのに始まらない時の想定例
月次帳票ジョブを投入しても実行されない時は、すぐ再投入せず、最初のジョブがどこにいるかを確認します。重複投入を防ぐことが初動の要点です。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| 投入結果 | ジョブ名、ユーザー、番号、投入時刻を記録する | 同じ処理がすでに待機または実行中でないか確認する |
| JOBQとSBSD | ジョブキューの状態と、受け取るサブシステムの稼働・割り当てを確認する | 待機理由が保留、未割り当て、実行枠待ちのどれかを分ける |
| JOBD | ジョブ記述のライブラリリスト、出力先、実行属性を確認する | 対話環境と同じ条件で動くと思い込まない |
開始しない理由が分からないままSBMJOBを繰り返すと、復旧後に同じ処理が複数動く危険があります。既存ジョブの状態、再投入の承認、重複時の停止方法を確認してから次へ進みます。




