如何監控 Job Status 為 MSGW 的 Job 並以 e-Mail 自動通知相關人員?
1. 請參閱電子報
“如何從 AS/400 直接傳送 E-Mail to Internet ?“
設定 AS/400 e-mail 相關設定。
2. FILE : QCLSRC
Member: ALERTC
Type : CLP
在這個程式中,我並沒有使用 System API,而是
使用 TFRCTL 指令,讓 CLP 能重複讀取 PF
檔案資料的技巧,才能省略另一支專門讀取檔案
資料的程式。
/* JOB STATUS MONITORING */
/* PROGRAM : ALERTC */
/* STATUS : MSGW */
/* DLYW */
/* HLD */
/* Usage: */
/* BEFORE COMPILED, CRTPF QTEMP/ALERTJOB RCDLEN(132) */
/* */
/* SBMJOB CMD(CALL ALERTC 'MSGW') JOB(ALERTJOB) JOBQ(QCTL) */
/* */
PGM PARM(&STS)
DCL VAR(&STS) TYPE(*CHAR) LEN(4)
DCL VAR(&TXT) TYPE(*CHAR) LEN(60)
DCLF FILE(QTEMP/ALERTJOB)
START: OVRPRTF FILE(QPDSPAJB) HOLD(*YES)
WRKACTJOB OUTPUT(*PRINT)
DLTOVR FILE(QPDSPAJB)
CHKOBJ OBJ(QTEMP/ALERTJOB) OBJTYPE(*FILE)
MONMSG MSGID(CPF9801) EXEC(DO)
CRTPF FILE(QTEMP/ALERTJOB) RCDLEN(132)
ENDDO
CPYSPLF FILE(QPDSPAJB) TOFILE(QTEMP/ALERTJOB) +
SPLNBR(*LAST)
DLTSPLF FILE(QPDSPAJB) SPLNBR(*LAST)
READ: RCVF RCDFMT(ALERTJOB)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(EOF))
IF COND(%SST(&ALERTJOB 111 4) *EQ &STS) +
THEN(DO)
CHGVAR VAR(&TXT) VALUE(&STS *CAT ' STATUS : ' *CAT +
%SST(&ALERTJOB 29 6) *CAT '/' *CAT +
%SST(&ALERTJOB 17 10) *TCAT '/' *CAT +
%SST(&ALERTJOB 4 10) *CAT '!!!')
SNDDST TYPE(*LMSG) +
TOINTNET((your-email@your-domain.com)) +
DSTD('ALERT') LONGMSG(&TXT) SUBJECT(&TXT)
SNDBRKMSG MSG(&TXT) TOMSGQ(DSP01 your-console)
ENDDO
GOTO READ
EOF:
DLYJOB DLY(180)
/* RERUN ALERTC FOR REREAD ALERTJOB PF */
TFRCTL PGM(ALERTC) PARM(&STS)
END: ENDPGM
A blog about IBM i (AS/400), MQ and other things developers or Admins need to know.
星期二, 10月 31, 2023
2001-07-24 如何監控 Job Status 為 MSGW 的 Job 並以 e-Mail 自動通知相關人員?
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言