/* The program name is CHGNSLEEP. */ /*****************************************************************************/ /* PROGRAM TO CHANGE JOURNAL RECIEVER AT FIXED TIME INTERVAL */ /* INPUTS ARE: LIBRARY NAME */ /* JOURNAL NAME */ /* TIME INTERVAL */ /* COMPILE STATEMENT: */ /* CRTCLPGM PGM(JOLAB00/CHGNSLEEP) SRCFILE(JOLAB00/CHGNSLEEP) */ /* SRCMBR(CHGNSLEEP) */ PGM PARM(&LIB &JRN &TIME) DCL VAR(&LIB) TYPE(*CHAR) LEN(10) DCL VAR(&JRN) TYPE(*CHAR) LEN(10) DCL VAR(&TIME) TYPE(*CHAR) DCL VAR(&COUNTER) TYPE(*INT) VALUE(0) DCL VAR(&MAXCHG) TYPE(*INT) VALUE(200) DCL &MSGID *CHAR 7 DCL &KEYVAR *CHAR 4 CRTMSGQ MSGQ(&LIB/SLEEPQ) REPEAT: IF COND(&COUNTER *LE &MAXCHG) THEN(DO) DLYJOB DLY(&TIME) IF COND(&MSGID *EQ 'END1000') THEN(GOTO + CMDLBL(END)) CHGJRN JRN(&LIB/&JRN) JRNRCV(*GEN) CHGVAR VAR(&COUNTER) VALUE(&COUNTER + 1) RCVMSG MSGQ(&LIB/SLEEPQ) MSGKEY(*NONE) WAIT(0) + RMV(*YES) KEYVAR(&KEYVAR) MSGID(&MSGID) IF COND(&MSGID *EQ 'END1000') THEN(GOTO + CMDLBL(END)) /* LOOP AROUND TO WAIT FOR NEXT JOURNAL CHANGE */ GOTO CMDLBL(REPEAT) ENDDO END: DLTMSGQ MSGQ(&LIB/SLEEPQ) ENDPGM