AS400のSBMJOB・WRKSBMJOB・DSPJOBDとは?バッチ投入と確認手順を解説

AS400(IBM i)のバッチ処理では、ジョブを投入する SBMJOB、投入済みジョブを確認する WRKSBMJOB、ジョブ記述を確認する DSPJOBD をセットで覚えると、調査の流れがつかみやすくなります。

バッチ処理は画面から見えにくいので、初心者は「投入したはずなのに動いているのか分からない」「どのジョブ待ち行列に入ったのか分からない」となりがちです。現場では、投入、確認、ジョブ記述の前提確認を分けて見ます。

SBMJOBで見るところ

SBMJOBは、コマンドをジョブとして投入する画面です。実行するコマンド、ジョブ名、ジョブ記述、ジョブ待ち行列、出力先を確認します。

AS400のSBMJOB画面。ジョブ名やジョブ待ち行列が既定値のまま表示されたパラメーター入力画面
SBMJOBをF4で開いたパラメーター画面です。ジョブ名が*JOBD、ジョブ記述が*USRPRF、ジョブ待ち行列が*JOBDと、すべて既定値のままになっています。この状態で投入すると、どの待ち行列に入るかはジョブ記述任せになります。投入前にここを見る癖をつけると、想定と違う行列に入る事故を防げます。

WRKSBMJOBで見るところ

WRKSBMJOBは、投入済みジョブを確認する画面です。投入されたジョブが待ち状態なのか、実行済みなのか、スプールが出ているのかを追う時に使います。

AS400のWRKSBMJOB画面。投入されたジョブの絞り込み条件を*USERで指定しているパラメーター入力画面
WRKSBMJOBをF4で開いた画面です。「投入されたジョブ」が*USERになっています。これは自分が投入した分だけを見る指定です。*WRKSTNなら同じ端末から投入した分、*JOBなら特定のジョブに絞れます。他の担当者が投入したバッチを探している時は、*USERのままだと出てきません。

DSPJOBDで見るところ

DSPJOBDは、ジョブ記述の中身を確認する画面です。ジョブ待ち行列、出力先、ライブラリ指定など、バッチがどの前提で動くかを確認します。

AS400のDSPJOBD画面。ジョブ記述名が空欄でライブラリーが*LIBLのパラメーター入力画面
DSPJOBDをF4で開いた画面です。ライブラリーが*LIBLになっています。同じ名前のジョブ記述が本番と検証の両方にある環境では、*LIBLのままだと実行時とは違う方を見てしまうことがあります。調べる時はライブラリーまで指定します。

バッチ調査の確認順

順番見るもの判断すること
1SBMJOBどのコマンドを、どのジョブ名・ジョブ記述で投入するか
2WRKSBMJOB投入済みジョブが存在するか、待ちか、実行済みか
3WRKACTJOB活動中ジョブとして動いているか、MSGWになっていないか
4WRKJOB / WRKSPLFジョブログ、帳票、コンパイルリストなどのスプールを確認する
5DSPJOBDジョブ待ち行列、出力先、実行前提が正しいか

初心者が注意すること

バッチ処理では、投入しただけで安心しないことが大事です。投入後に本当に動いているのか、MSGWで止まっていないか、スプールにエラーが出ていないかを確認します。

販売管理システムでは、受注、出荷、在庫引当、売上計上、請求、物流連携などがバッチでつながることがあります。どこか一つが止まると後続処理に影響するため、単独のジョブだけでなく、前後の処理も見ます。

関連して読む記事

SBMJOBは投入後の確認までが作業です

SBMJOBは、バッチジョブを投入するためのコマンドです。投入した瞬間に画面が戻るため、初心者は「処理が終わった」と勘違いしやすいですが、実際にはジョブが待ち行列に入った、または裏側で動き始めただけです。投入後は、WRKSBMJOB、WRKACTJOB、WRKJOB、DSPJOBLOG、WRKSPLFをつなげて確認します。

状態見るコマンド判断すること
投入直後WRKSBMJOBジョブが投入済みか、待っているか
実行中WRKACTJOBRUN、MSGW、LCKW、CPU高騰の有無
異常終了WRKJOB / DSPJOBLOG最後のエラーだけでなく直前の流れを見る
出力確認WRKSPLFジョブログ、帳票、処理結果リストを見る
実行環境DSPJOBDJOBQ、OUTQ、ライブラリリスト、実行前提を見る

夜間バッチで怖いのは翌朝に気づくこと

販売管理の夜間バッチでは、受注、出荷、在庫、売上、請求、EDIなど後続処理につながることがあります。1本のジョブが止まっただけに見えても、翌朝の業務開始時に「出荷できない」「請求データがない」「連携が届いていない」として表面化する場合があります。

  • 投入したジョブが待ち行列に残っていないか
  • MSGWや異常終了で止まっていないか
  • スプールに処理結果やジョブログが出ているか
  • 一部更新済みのまま再投入してよいか
  • 後続の出荷、請求、EDIへ影響していないか

SBMJOBの次に確認する記事

SBMJOBしたのに始まらない時の想定例

月次帳票ジョブを投入しても実行されない時は、すぐ再投入せず、最初のジョブがどこにいるかを確認します。重複投入を防ぐことが初動の要点です。

確認点確認内容判断
投入結果ジョブ名、ユーザー、番号、投入時刻を記録する同じ処理がすでに待機または実行中でないか確認する
JOBQとSBSDジョブキューの状態と、受け取るサブシステムの稼働・割り当てを確認する待機理由が保留、未割り当て、実行枠待ちのどれかを分ける
JOBDジョブ記述のライブラリリスト、出力先、実行属性を確認する対話環境と同じ条件で動くと思い込まない

開始しない理由が分からないままSBMJOBを繰り返すと、復旧後に同じ処理が複数動く危険があります。既存ジョブの状態、再投入の承認、重複時の停止方法を確認してから次へ進みます。

公式情報: IBM Documentation: Job queues