WRKACTJOBの見方|AS400でジョブ状態・MSGW・CPUを確認する

AS400 / IBM i の保守で、障害調査の入口になるコマンドの一つが WRKACTJOB です。

販売管理システムの現場では、客先から「処理がおかしい」「画面が返ってこない」「バッチが進んでいない」と問い合わせが来た時点で、まず WRKACTJOB を見ることがあります。ジョブが動いているのか、止まっているのか、MSGWで応答待ちになっているのかを切り分ける入口になるからです。

この記事では、25年以上AS400 / IBM i の販売管理システム保守に関わってきた立場から、WRKACTJOB で最初に見るところ、MSGWを見つけた時の注意、初心者がやりがちな危ない対応を整理します。

AS400のWRKACTJOB画面。活動ジョブ、ユーザー、タイプ、CPU、機能、状態を確認する例
WRKACTJOBでは、活動中のジョブ、ユーザー、タイプ、CPU使用率、機能、状態を確認できます。販売管理の保守では、まず異常なジョブがないかを見る入口になります。

WRKACTJOBとは

WRKACTJOB は、AS400 / IBM i 上で活動しているジョブを確認するためのコマンドです。対話ジョブ、バッチジョブ、サブシステムジョブなど、システム上で動いているジョブの状態を一覧で確認できます。

WRKACTJOB

初心者向けに一言でいうと、「今AS400上で何が動いているかを見る画面」です。障害調査では、ここで全体の様子を見てから、対象ジョブのジョブログや周辺状況を追っていきます。

最初に見るのはCPU使用率とMSGW

私が WRKACTJOB を見る時に最初に確認するのは、CPU使用率とMSGWです。

最初に見る項目見る理由現場での判断
CPU使用率暴走しているジョブがないか確認する異常にCPUを使っているジョブがあれば、処理内容や影響範囲を調べる
MSGWジョブがメッセージ応答待ちで止まっていないか確認するジョブログを見て、何が起きているか把握してから応答を考える
機能どのプログラムや処理で動いているかを見る販売管理のどの処理に影響するかを考える
ユーザー・ジョブ名誰のジョブか、どの処理かを見る対象者や対象処理を切り分ける

CPU使用率が異常に高いジョブがある場合は、暴走ジョブの可能性があります。もちろん、単に重い処理が動いているだけの場合もありますが、「いつもと違う動き」かどうかを見ることが大切です。

もう一つ重要なのが MSGW です。MSGWは、ジョブがメッセージ応答待ちになっている状態です。販売管理のバッチや連携処理がMSGWで止まっていると、後続処理に影響することがあります。

MSGWの返答判断を詳しく知りたい場合は、AS400のMSGWとは?メッセージ待ちジョブを見つけた時の確認手順で整理しています。

MSGWを見つけた時に初心者がやりがちな危ない対応

初心者がやりがちな危ない対応は、MSGWを見つけてすぐに4番などでジョブを強制終了しようとすることです。

気持ちは分かります。画面上で止まっているジョブを見ると、「早く消さないと」と思ってしまうかもしれません。ただ、そこで焦ってジョブを終わらせると、処理途中のデータ、後続処理、連携処理に影響する可能性があります。

まず落ち着いて、ジョブログを見ます。何が起きているのか、どのプログラムで止まっているのか、ファイルオープンなのか、権限なのか、データエラーなのか、メッセージの前後を確認します。

AS400のWRKACTJOB画面でMSGW状態のジョブが表示されている例。PGM-TEST001Rがメッセージ待ちになっている
MSGWを見つけたら、まずジョブログを確認します。いきなり強制終了するのではなく、何が起きているかを把握してから応答や対応方針を決めます。

MSGWを見つけた時の確認順

MSGWを見つけた時、私は次のような順番で考えます。

順番確認すること注意点
1どのジョブがMSGWかジョブ名、ユーザー、機能を確認する
2何の処理か販売管理なら受注、出荷、在庫、売上、請求、連携のどれかを考える
3ジョブログ最後のメッセージだけでなく、前後のCALLやファイル操作を見る
4業務影響後続処理や店舗・物流連携に影響があるか確認する
5応答・対応方針勝手に強制終了せず、必要なら上長やメンバーに確認する

若手に教えるなら、まず「MSGWを見つけたら上長に報告」と言います。今どきは監視や検知システムを入れていて、自動的にメールが飛ぶ仕組みを作っている現場も多いと思います。それでも、画面でMSGWを見つけた時に勝手な判断をしないことは大事です。

RUN、DEQW、SELW、MSGWの見方

WRKACTJOB では、ジョブの状態を確認できます。現場で特に気にするのはMSGWですが、RUN、DEQW、SELWなども見かけます。

状態大まかな見方現場での考え方
RUN実行中通常の処理中。ただしCPU使用率が高すぎる場合は暴走や長時間処理を疑う
MSGWメッセージ応答待ち最優先で内容確認。ジョブログを見て対応を考える
DEQW待機状態すぐ異常とは限らない。処理内容や待ち状態の理由を見る
SELW待機状態の一種単独では判断しない。処理内容や周辺状況を確認する
LCKWロック待ち他のジョブがオブジェクトを掴んでいる可能性がある。ロック元のジョブを確認する

ただし、状態名だけで判断しない方がいいです。たとえばRUNでも、CPUを異常に使っているなら気になります。MSGWなら、内容を見ずに終わらせるのは危険です。状態は入口であり、最終判断はジョブログや業務影響を見て行います。

販売管理システムでWRKACTJOBを見る場面

販売管理システムでは、客先から「おかしい」と問い合わせがあった時点で WRKACTJOB を見ることがあります。

たとえば、出荷処理が進んでいない、在庫引当が終わらない、売上計上のバッチが遅い、店舗連携や物流連携が止まっているように見える。こういう時に、まずシステム側でジョブが動いているのか、MSGWで止まっているのか、CPUを食っているジョブがないかを確認します。

一方、WRKACTJOB を開いたままF5更新を続けるだけでは、原因の切り分けに必要な情報が不足します。異常らしいジョブを見つけたら、ジョブログ、周辺処理、業務影響を確認します。

WRKACTJOBから次に何を見るか

WRKACTJOB は入口です。異常ジョブを見つけたら、そこで終わりではありません。

WRKACTJOB
WRKJOB JOB(123456/USER/TESTJOB)
DSPJOBLOG JOB(123456/USER/TESTJOB)

実際には、単純に「WRKACTJOBからWRKJOBへ遷移する」というより、異常ジョブを見つけたらジョブログを含めて周辺状況を調べます。どの処理で止まったのか、前後のメッセージは何か、後続処理に影響するのかを見て、対処を考えます。

関連する確認手順は、WRKJOBとDSPJOBLOGの使い方AS400のジョブログ確認手順AS400バッチ処理の確認手順AS400本番作業の安全確認でも整理しています。

初心者向けチェックリスト

チェック内容
CPU使用率を見る暴走ジョブがないか確認する
MSGWを見る応答待ちで止まっているジョブがないか確認する
ジョブ名と機能を見るどの処理が動いているか確認する
ジョブログを見る何が起きたかを前後のメッセージで確認する
勝手に強制終了しない影響範囲を確認し、必要なら上長へ報告する

CPUが高いジョブは止める前に役割を見る

WRKACTJOBでCPU使用率が高いジョブを見つけても、すぐに終了するのは危険です。締め処理、帳票作成、データ連携、再編成、SQL集計など、時間がかかって当然の処理もあります。まずはジョブ名、ユーザー、サブシステム、実行中プログラム、開始時刻を見ます。

判断するときは、いつもより遅いのか、処理件数が多いだけなのか、同じSQLやプログラムで止まっているのかを分けます。MSGWやLCKWが出ている場合はCPUだけの問題ではありません。利用者影響が大きい場合も、終了前に担当者へ確認し、再実行できるか、途中データが残らないかを確認してから対応します。

状態別に次の調査へ進む

まとめ

WRKACTJOB は、AS400の障害調査で最初に見ることが多い画面です。CPU使用率で暴走ジョブがないかを見る。MSGWで止まっているジョブがないかを見る。異常があれば、ジョブログや周辺処理を確認して対処を考える。

一番大事なのは、MSGWや暴走ジョブの早期発見です。ただし、見つけた瞬間に焦って強制終了するのではなく、落ち着いて原因を確認すること。WRKACTJOBは「眺める画面」ではなく、次の調査に進むための入口です。

次に確認するジョブ・MSGW

WRKACTJOBで見つけた状態別に、次に読む記事をまとめます。

WRKACTJOBは毎日見る画面のひとつです。朝いちばんに何を見るかを決めておきたい場合は毎日見る画面のチェックリストが使えます。