|
I have written something to do this. You would have to modify the code to
send an E-mail and change which messages you want to monitor for. Here's
the source if it will help. You would make an initial submit job to the
program (mine's in qstrup) with the following parameter's
1. Message Queue
2. Check Cycle in Seconds
3. Blank Character - Not used
4. Type of messages to display ie: *inq
It resubmits itself at midnight so the joblog doesn't get to big.
PGM PARM(&MSGQ &CYCLE &HIT &TYPE)
DCL VAR(&MSG) TYPE(*CHAR) LEN(500) VALUE(' ')
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) VALUE(' ')
DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4) VALUE(' ')
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(500) VALUE(' ')
DCL VAR(&USER) TYPE(*CHAR) LEN(10) VALUE('ERICG')
DCL VAR(&MSGQ) TYPE(*CHAR) LEN(10)
DCL VAR(&CYCLE) TYPE(*CHAR) LEN(5)
DCL VAR(&TYPE) TYPE(*CHAR) LEN(5)
DCL VAR(&HIT) TYPE(*CHAR) LEN(1)
DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
DCL VAR(&HOUR) TYPE(*CHAR) LEN(2)
DCL VAR(&MINCH) TYPE(*CHAR) LEN(2)
DCL VAR(&DELAY) TYPE(*DEC) LEN(5)
DCL VAR(&MINUTE) TYPE(*DEC) LEN(2)
START:
OVRPRTF FILE(QPDSPMSG) HOLD(*YES)
CHGMSGQ MSGQ(&MSGQ) DLVRY(*BREAK)
MONMSG MSGID(CPF2451) EXEC(GOTO CMDLBL(END1))
DLTSPLF FILE(QPDSPMSG) SPLNBR(*LAST)
MONMSG MSGID(CPF3309)
RCVMSG MSGQ(&MSGQ) MSGTYPE(&TYPE) RMV(*NO) +
KEYVAR(&MSGKEY) MSG(&MSG) MSGDTA(&MSGDTA) +
MSGID(&MSGID)
DLTSPLF FILE(QPDSPMSG) SPLNBR(*LAST)
MONMSG MSGID(CPF3309)
IF COND(&MSGID = 'CPA4088') THEN(DO)
SNDRPY MSGKEY(&MSGKEY) MSGQ(&MSGQ) RPY(C)
SNDMSG MSG(&MSGDTA) TOUSR(&USER)
CHGVAR VAR(&MSGID) VALUE(' ')
CHGVAR VAR(&MSGKEY) VALUE(' ')
ENDDO
IF COND(&MSGID = 'CPA2401') THEN(DO)
SNDRPY MSGKEY(&MSGKEY) MSGQ(&MSGQ) RPY(R)
SNDMSG MSG(&MSGDTA) TOUSR(&USER)
CHGVAR VAR(&MSGID) VALUE(' ')
CHGVAR VAR(&MSGKEY) VALUE(' ')
ENDDO
IF COND(&MSGID = 'CPA57EF') THEN(DO)
SNDRPY MSGKEY(&MSGKEY) MSGQ(&MSGQ) RPY(C)
CHGVAR VAR(&MSGID) VALUE(' ')
CHGVAR VAR(&MSGKEY) VALUE(' ')
ENDDO
IF COND(&MSGID = 'CPF4128') THEN(DO)
CALL PGM(KOGAPP/EGDIAL)
ENDDO
IF COND(&MSGID = 'CPA5305') THEN(DO)
CALL PGM(KOGAPP/EGDIAL)
ENDDO
IF COND(&MSGID = 'CPF0907') THEN(DO)
CALL PGM(KOGAPP/EGDIAL)
ENDDO
IF COND(&MSGID = 'CPI099C') THEN(DO)
CALL PGM(KOGAPP/EGDIAL)
ENDDO
IF COND(&MSGID = 'CPF6792') THEN(DO)
SNDMSG MSG(&MSGDTA) TOUSR(&USER)
CHGVAR VAR(&MSGID) VALUE(' ')
CHGVAR VAR(&MSGKEY) VALUE(' ')
ENDDO
IF COND(&MSGID = 'RPG1021') THEN(DO)
IF COND(%SST(&MSG 1 20) = 'DSS537 5400 +
LABMSTL3') THEN(DO)
SNDRPY MSGKEY(&MSGKEY) MSGQ(&MSGQ) RPY(G)
CHGVAR VAR(&MSGID) VALUE(' ')
CHGVAR VAR(&MSGKEY) VALUE(' ')
ENDDO
ENDDO
IF COND(%SST(&MSG 1 35) = 'PROCESS SERIES +
BOUSE COMPLETED') THEN(DO)
RTVJOBA JOB(&JOB)
IF COND(&JOB = 'POLL') THEN(CHGVAR VAR(&HIT) +
VALUE('Y'))
GOTO CMDLBL(END2)
ENDDO
CHGMSGQ MSGQ(&MSGQ) DLVRY(*HOLD)
DLYJOB DLY(&CYCLE)
RTVSYSVAL SYSVAL(QHOUR) RTNVAR(&HOUR)
IF COND(&HOUR = '00') THEN(DO)
RTVSYSVAL SYSVAL(QMINUTE) RTNVAR(&MINCH)
CHGVAR VAR(&MINUTE) VALUE(&MINCH)
CHGVAR VAR(&DELAY) VALUE(&CYCLE)
IF COND(&MINUTE < &DELAY) THEN(DO)
GOTO CMDLBL(NEXT)
ENDDO
ENDDO
GOTO CMDLBL(START)
NEXT:
SBMJOB CMD(CALL PGM(KOGAPP/MONMSGCL) PARM(&MSGQ +
&CYCLE &HIT &TYPE)) JOBQ(*LIBL/QBATCH) +
USER(DB2CONN)
MONMSG MSGID(CPF0000)
GOTO CMDLBL(END)
END1: SNDPGMMSG MSG('MONMSG Cannot allocate Message Queue' +
*BCAT &MSGQ *TCAT '.') TOMSGQ(*SYSOPR)
END2: DLTOVR FILE(*ALL)
CHGMSGQ MSGQ(&MSGQ) DLVRY(*HOLD)
END: RETURN
ENDPGM
Eric Graeb
AS/400 Administrator
King Optical Group Inc.
> If you are "stuck" with having to do this yourself - good luck -
> but it could be done - though I would not suggest it.
>
> you would have to do a dspmsg of say the qsysopr message q to a print
file,
> and then read that into a program to see if there are any new messages,
> and then e-mail from there -
>
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.