実行環境

48. WRKACTJOB の徹底活用と解説

活動ジョブの処理 (WRKACTJOB) は、多くの機能が秘められている。
WRKACTJOB は Windows のタスクマネージャーのように実行中のジョブ(プロセス)の状況を
表示したり、制御したりするコマンドである。
ここでは意外と知られていない WRKACTJOB の機能も含めて活用の方法を紹介しよう。

【 WRKACTJOB の起動 】

通常は、コマンド入力画面において

WRKACTJOB + [実行]

だけで、活動ジョブすべてが表示される。
活動ジョブは QBASE, QINTER, ... などのサブシステム配下に活動中のジョブが
表示されるようになっている。

■ 主なサブシステムとその意味

QBASE

対話型とバッチの両方のジョブを実行するサブシステム。
i5 の導入時ではシステム値 QCTLSBSD に QBASE が登録されているが、 QINTER と QBATCH に分離したほうが、全体の
パフォーマンスは改善される。

QINTER

対話型サブシステム。
5250エミュレータはこの配下に接続されている。

QSPL

スプールと印刷用のサブシステム。
ライターはこの配下で活動する。

QBATCH

バッチJOB用サブシステム。すべてのバッチJOB がこの配下で
起動するわけではなくJOBQ から指定されている場合に限る。
どのJOBQ に投入したバッチJOB がどのサブシステム配下で
動作するのかの関連は WRKJOBQ で知ることができる。

QSNADS

i5 どうしのオブジェクトやスプールの転送を行うサブシステム。
通常はIPL では開始されていないので転送がある場合は STRSBS QSNADS で開始させる必要がある。送信側は相手となる受け取り側の
i5 の SNADS が開始されていなくても送信することはできるが、受け取り側は開始していないと受け取ることができない。

QSYSWRK

OS400 (i5/OS) 用の雑多な汎用サブシステム。通常は IPLと同時に開始されている。
TCP/IP, Ftp, ... などが配下で活動する。

QHTTPSVR

IBM HTTPサーバーのサブシステム。旧リリースでは QSYSWRK の配下で起動していたが、
最新ではSTTCPSVR *HTTP で専用サブシステムとして起動する。

■ 以下は弊社製品によるサブシステムである。

ENTPRSSVR

EnterpriseServer サブシステム。
HTTPサーバー Alaska や eStudio のサーバーとなる
Hostサーバーが配下で起動する。
ENTPRSSVR はバッチ式のサブシステムであるので
対話型CPW は、一切使用しない。

CHICAGO

Chiago のサブシステム。AutoGUI を使用している場合も
実はバッチCPW で活動している。

SPOOLWTR

Spoolライターのサブシステム。

【 特定のサブシステムだけを表示するには? 】

単に WRKACTJOB + [実行] だけでは、すべてのサブシステムが表示されてしまうので、
目的のサブシステムを探しだすのに大変な場合がある。

WRKACTJOB SBS(xxxxxxxx) とすれば指定した特定のサプシステムだけを
表示することができる。

【 CPU の使用率を調べる 】

稼動中のジョブのCPU の使用率を見るために「F5=最新表示」を押すことはあるだろう。
繰り返し F5キーを押しているうちに特定のジョブだけが異常に CPU使用率が
高くなってくることに気づいたことはないだろうか ?
あるいはもう既に終了しているはずなのに、いつまでも CPU 使用率が
高いままである場合もある。
これは「F10=統計の再始動」を押していないからである。
CPU 使用率とは WRKACTJOB コマンドを開始した時点からの CPU 使用率を
表示しているのだ。
したがって最新の状況を把握するには適切な時点で F10キーを押して、
使用率をリセットしてからF5キーを押す必要がある。
F10キーを押してから F5キーを押して、CPU使用率がゼロであれば、そのJOB は
完全に終了(停止)していると判断することができる。

【 実行優先度を調べる 】

WRKACTJOB で「F11= 経過 データ の表示」を押すと下記のような表示に切り替わって
ジョブの優先度を調べたり、変更することができる。
「PTY」(=PRIORITY) と表示されているのが実行優先度である。
一般に優先度は対話式がバッチより勝っている。

【 JOBLOG を調べる 】

特に重要であるのが JOB の異常状況の調査である。
CGI の実行状況の調査でも重要である。
JOBLOG を調べるには子プロセスを 「5= 処理」で選択してから、「10. ジョブ・ログの表示」でJOBLOG を表示する。
さらに「F10= 詳細メッセージの表示」を押すと画面は下記のようにすべてのJOBLOG
表示することができる。ここまで行わないとすべてのメッセージを知ることはできない。

これでたいていのJOB の状況としてのログを参照することができるが、実はこれで
すべてではない。
このJOB を終了させると印刷待ち行列 QEZJOBLOGJOBLOG
印刷出力されるが、そこにすべての情報が出力されているので、どうしても異常状況が
不明な場合は QEZJOBLOG の確認も必要となることを覚えていて欲しい。

【 状況を調べる 】

WRKACTJOB の右端に表示される「状況」は、そのJOB が現在、どのような状況であるかを直ちに知ることができる。
多くの場合、DSPW (=表示で入力待ち) や RUN (=実行中) などが表示されるが「状況」の欄にカーソルをセットして F1キーを押すと状況の意味を
日本語ヘルプで調べることができる。特に MSGW (=メッセージ待ち) は、何らかの異常が
発生して、メッセージに対する応答が必要であることを意味している。
MSGW であれば 7=メッセージの表示 を選択してメッセージに応答が必要となる。

【 V5R4M0 からのユーザー・プロフィールの表示 】

仮想ユーザー環境などによって API でログインしている場合でも OS400 V5R4M0 からは
ユーザー名が表示されるようになった。 これは CGI を利用している場合にどのユーザーが
現在、使用中であるか知るのにわかりやすくなっている。