このツールの特徴
- このツールは強制終了(ジョブキャンセル)するまで終了しません。いづれ、データ待ち行列で対応します。
- このツールは、活動を開始すると、SBMJOBで指定されたJOBQに連結したサブシステム上で、活動をします。(10分ごとに、ループします。)
- 各ジョブの状況を取りだして、指定したジョブ状況と一致したものを見つけた場合、指定されたメッセージ待ち行列に、
('ジョブ'|<&JOB_FULL|<'が'|<&JOB_STATUS|<'です! ')
を送ることで、ジョブを監視していなくても、メッセージを出してくれるので、その状況に気づく、というわけです。
検査対象
空白 そのジョブは無効なジョブです。
A そのジョブは自動開始ジョブです。
B そのジョブはバッチ・ジョブです。
I そのジョブは対話式ジョブです。
M そのジョブはサブシステム・モニター・ジョブです。
R そのジョブはスプールされている読取りジョブです。
S そのジョブはシステム・ジョブです。
W そのジョブはスプールされている書出しジョブです。
X そのジョブは SCPF システム・ジョブです。
のうち、 i と b のみ対象としています。
QSYSMSG_CKを例外のジョブ名として、検査からはずしています。
CLPソース
jobchkcl.clp
JOBLOG(*NO)で作成されることをおすすめします。ループするプログラムなので、ジョブログは大きくなるためです。
CMDソース
jobchk.cmd
CPPは、JOBCHKCLです。
各キーワードの説明
STATUS 監視したいジョブ状況
*MSGW メッセージ待ち行列からのメッセージを待機中です。
*LCKW ロックを待機中です。
*SRQ 一対のシステム要求ジョブの保留されている側です。
PRINT
監視していたジョブが、指定したジョブ状況になった場合、ジョブの印刷をするか、否か
*YES
DSPJOB &JOB_JOBNO/&JOB_USER/&JOB_NAME *PRINTを実行します。
*NO
印刷はしません。
MSG
監視していたジョブが、指定したジョブ状況になった場合、メッセージの送信をするか、否か
*YES
SNDPGMMSG MSG(&MSG) TOUSR(&TOUSR1)を実行します。
*NO
メッセージは送信しません。
TOUSR メッセージの送信先ユーザー名(3つまで)
十分テストの後、QSTRUPに組み込みました。
SBMJOBのCMDの中の拡大
このように、特別なサブシステム(NEPSBS)を作る。JOBQはMAXACTが1だと、塞がれてしまうことに注意。
|