AS400のWRKJOBとDSPJOBLOGの使い方|スプール・ジョブログ確認を初心者向けに解説

AS400(IBM i)の保守で、WRKACTJOBやMSGWと並んで覚えておきたいのが WRKJOBDSPJOBLOG です。

WRKJOBはジョブの状態やスプールを確認する入口、DSPJOBLOGはジョブが実行中に何をしたかを見るログです。初心者には少し地味に見えるかもしれませんが、これを覚えないとAS400保守はできない、と言っていいくらい大事です。

この記事では、25年以上AS400 / IBM iの販売管理システム保守に関わってきた現場目線で、初心者がまずどこを見ればよいかを整理します。

WRKJOBとは

WRKJOBは、指定したジョブに対して、ジョブ状況、ジョブ実行属性、スプール・ファイル、ジョブログなどを確認するためのコマンドです。

WRKJOB JOB(999999/TEST001/TEST001)

活動中のジョブだけでなく、終わったジョブのスプールやジョブログを確認する時にも使います。WRKACTJOBで異常ジョブを見つけた後、対象ジョブの詳細を確認する入口として使うことが多いです。

AS400のWRKJOB画面。ジョブ状況、ジョブ定義属性、スプールファイル、ジョブログ表示などのメニューが表示されている例
WRKJOBのジョブ処理画面。初心者には、まずスプール・ファイルの場所を見せると理解しやすいです。

初心者に最初に見せるならスプール・ファイル

WRKJOBの画面には、ジョブ状況属性、ジョブ定義属性、ジョブ実行属性、スプール・ファイルなど、いろいろな項目があります。

初心者に最初に見せるなら、私は スプール・ファイル です。ここに帳票出力されたスプールやジョブログが保管されることを見せると、「ジョブの結果がどこに残るのか」が理解しやすくなります。

項目初心者への見せ方現場での使いどころ
スプール・ファイル最初に見せる帳票、コンパイルリスト、ジョブログの確認
ジョブ状況属性慣れてからでよいジョブの状態を詳しく見る時
ジョブ実行属性初心者には分かりにくい環境や実行条件を確認する時
ライブラリ・リスト本番確認では重要どのライブラリを参照しているかの確認

スプール以外の項目は、初心者には「それを見てどうなるの?」となりやすいです。まずは、ジョブの結果がスプールに残ることを理解してから、必要に応じて他の項目へ進めば十分です。

DSPJOBLOGとは

DSPJOBLOGは、ジョブのログを表示するコマンドです。アプリケーションが実行中に何をしたか、どのプログラムを呼んだか、どんなメッセージが出たかを時系列で確認できます。

DSPJOBLOG JOB(999999/TEST001/TEST001)

ジョブログを見る時は、メッセージIDだけで判断するのではなく、重大度、時刻、プログラム名、ライブラリ名、前後の流れも見ます。私は一通り全部見ますが、初心者にはまず重大度とメッセージIDを押さえさせるのが入り口として分かりやすいです。

AS400のジョブログ表示画面。CALL、MSGW、メッセージの折り返しなど、障害調査で確認する情報が並んでいる例
DSPJOBLOGのジョブログ表示画面。日付・時刻付きで、ジョブが何を処理したかを追えます。

コンパイルリストとジョブログの違い

初心者には、コンパイルリストとジョブログの違いもよく混乱されます。

私は次のように説明します。

種類説明見る場面
コンパイルリストアプリをコンパイルした時のレポートコンパイルエラー、警告、ソース行の確認
ジョブログアプリを実行した時のレポート実行時エラー、MSGW、CALLの流れ、処理時刻の確認

コンパイルリストは、エラーがあってもなくても出力させます。ジョブログは、日付、時間付きで、ジョブが何を処理したかが分かるログです。

つまり、作った時の確認がコンパイルリスト、動かした時の確認がジョブログです。

ジョブログで最低限見る項目

ジョブログを見る時、メッセージIDだけを見ると、原因ではなく結果だけを拾ってしまうことがあります。ただ、初心者の入口としては重大度を見ること自体は悪くありません。まずは重大度で当たりを付けて、そこから前後のメッセージを追うのが現実的です。

見る項目確認する理由
メッセージIDCPF、RNX、MCHなど、エラーの種類をつかむ
重大度どの程度の問題として扱うかの目安にする
時刻どの処理タイミングで発生したかを見る
プログラム名どの処理で起きたかを見る
ライブラリ名本番/テスト、参照先の取り違えを疑う
前後のメッセージ結果ではなく原因に近いメッセージを探す

特にMSGWのようなメッセージ待ち状態では、返答文字を入れる前にジョブログを確認します。DやGを安易に返すと、リトライで戻せた処理まで戻せなくなることがあります。

調査メモに残す最低限の項目

ジョブログを調べたあと、最低限メモに残すなら、ジョブ名、ユーザー、番号です。

項目残す理由
ジョブ名TEST001どのジョブを調査したか分かる
ユーザーTEST001誰のジョブか分かる
番号999999同名ジョブでも特定できる
メッセージIDCPFxxxx / RNXxxxxエラー内容を後から追える
スクショジョブログ該当画面共有時に認識違いを減らせる

障害対応でジョブログを共有する時、私はスクショ派です。文章で説明するより、該当行の画面を見せた方が早いことが多いです。ただし、顧客名、個人情報、実データが写っていないかは必ず確認します。

WRKJOB / DSPJOBLOGを覚えないと保守はできない

WRKJOBやDSPJOBLOGを覚えるとAS400保守が楽になる、というより、これを覚えないと保守ができません。

販売管理システムでは、受注、出荷、在庫、売上、請求、外部I/Fなど、処理がつながっています。どこかでジョブが止まった時、ジョブログを見ずに判断すると、影響範囲を見誤ります。

まずはWRKJOBでスプール・ファイルを見る。ジョブログで重大度、メッセージID、前後の流れを見る。分からない時は勝手に返答せず、スクショを取って上長やメンバーに共有する。この流れを覚えるだけでも、AS400保守の入口としてかなり強くなります。

WRKJOB、MSGW、ジョブログはセットで覚える

WRKJOBとDSPJOBLOGは単独で覚えるより、WRKACTJOB、MSGW、スプール確認とセットで覚えた方が現場で使いやすいです。WRKACTJOBで異常ジョブを見つけ、WRKJOBで対象ジョブを深掘りし、DSPJOBLOGで実行時の流れを追います。

見る場所確認すること次に判断すること
WRKACTJOBMSGW、CPU、実行状態止まっているジョブか、動いているジョブかを分ける
WRKJOBジョブログ、スプール、ジョブ属性対象ジョブを深掘りする
DSPJOBLOGCPF、RNX、MCH、SQL、応答メッセージ最後のメッセージだけでなく前後の流れを見る
WRKSPLF帳票、ジョブログ、コンパイルリスト出力結果や証跡を確認する

WRKSPLFとDSPJOBDも合わせて覚える

WRKJOBでスプールを見る流れを覚えたら、WRKSPLFとDSPJOBDも合わせて覚えると、帳票・ジョブログ・コンパイルリスト・ジョブ記述の確認がしやすくなります。

AS400のWRKSPLF画面サンプル。スプールファイルを確認する画面
WRKSPLFは、帳票、ジョブログ、コンパイルリストなどのスプールを確認する時に使います。単体テスト後のエビデンス確認でもよく見る画面です。
AS400のDSPJOBD画面サンプル。ジョブ記述を表示する画面
DSPJOBDは、ジョブ記述を確認する画面です。ジョブ待ち行列、出力先、実行環境の前提を確認する時に使います。

WRKJOBからジョブログ詳細を見る流れ

WRKJOBでは、ジョブにひもづくスプールやジョブログを確認できます。ジョブログ詳細では、メッセージIDだけでなく、重大度、原因、回復手順、応答欄まで見るのが現場では大事です。

AS400のWRKJOB画面例。ジョブのスプール・ファイル処理を選ぶメニューが表示されている。
WRKJOBでは、ジョブログやスプール・ファイルを確認できます。初心者には、まずスプール・ファイルからジョブログや帳票の出力場所を見せると流れを理解しやすいです。
AS400のDSPJOBLOG詳細メッセージ画面例。メッセージID、重大度、原因、回復手順、応答欄が表示されている。
DSPJOBLOGの詳細メッセージでは、メッセージIDだけでなく、重大度、原因、回復手順、応答欄まで確認します。MSGW対応では、C/I/R/D/Gなどの応答を焦って返さないことが重要です。

ジョブログが見つからない時に確認すること

ジョブログを見る前に、対象ジョブを正しく特定できているかを確認します。ジョブ名だけで探すと、同じ名前のジョブ、別ユーザーのジョブ、終了済みジョブ、スプールへ出力されたジョブログを見落とすことがあります。

  • ジョブ名、ユーザー、ジョブ番号、サブシステム、投入時刻を確認する
  • JOBDのLOG、LOGCLPGM、LOGOUTPUT、OUTQを確認する
  • ジョブログがスプールへ出ていないかWRKSPLFで探す
  • 同時刻のQSYSOPR、DSPLOG/QHST、WRKPRBも必要に応じて確認する

最後のメッセージだけで原因を決めない

ジョブログでは、画面に見えている最後のエラーが本当の原因とは限りません。ファイル未検出、権限不足、ロック待ち、数値変換、SQLエラー、MSGWなどは、最後の異常終了メッセージより前に原因の手がかりが出ていることがあります。

AIやCodexに相談する場合も、会社名、ユーザー名、ライブラリ名、実データをマスキングし、ジョブ名、メッセージID、時刻、直前のCALLやSBMJOBを整理してから渡します。

次に読む記事

WRKJOBとDSPJOBLOGを、属人化させないために

WRKJOBやDSPJOBLOGを検索している人は、単にコマンド名を知りたいだけでなく、夜間バッチの失敗、MSGW、スプール出力、エラー原因の切り分けを急いでいることが多いです。現場で大事なのは、担当者だけが読める状態にせず、誰が見ても同じ順番でジョブログを確認できるようにすることです。

若手や引き継ぎ担当に教える時は、ジョブ名、ユーザー、ジョブ番号、異常終了メッセージ、直前の処理、後続影響をセットで記録させます。調査メモをCodexで整理する場合も、実データや機密値をそのまま貼らず、メッセージID、処理名、確認順、判断理由を中心に残すと安全です。

ジョブログは「起きたことの時系列」として読む

ジョブログを見るときは、最後に出たエラーだけで判断せず、処理開始からエラー発生までの流れを時系列で追います。直前のコマンド、呼び出されたプログラム、対象ファイル、CPFメッセージ、異常時の分岐を合わせて見ると、原因の入口を見つけやすくなります。

見る順番確認すること判断のポイント
1ジョブ名、ユーザー、番号調査対象のジョブが合っているか
2開始時刻と実行コマンドどの処理が起点か
3CPFメッセージCPFエラー小辞典と照らす
4対象オブジェクトやライブラリ存在、権限、ロック、参照先を見る
5対応記録暫定対応と恒久対応を分けて残す

ジョブログ調査を社内で共有する場合は、エラーコードだけでなく、前後のメッセージ、確認したコマンド、判断した理由まで残すと再発時に役立ちます。調査手順を型にしておくことは、AS400保守の属人化対策にもつながります。