/* The program name is HAAPPLY. */ /*****************************************************************************/ /* PROGRAM TO MONITOR FOR RECIEVER DETATCHED FROM A REMOTE */ /* JOURNAL AND SAVE/RESTORE THE JOURNAL RECEIVER TO */ /* ASSOCIATE IT WITH A LOCAL JOURNAL */ /* INPUTS ARE: USER ID */ /* */ /* COMPILE STATEMENT: */ /* CRTCLPGM PGM(JOLAB00/HAAPPLY) SRCFILE(JOLAB00/HAAPPLY) SRCMBR(HAAPPLY) */ PGM PARM(&ID) DCL VAR(&MSGQ) TYPE(*CHAR) LEN(10) DCL VAR(&LIB) TYPE(*CHAR) LEN(10) DCL VAR(&LCLRCVLIB) TYPE(*CHAR) LEN(10) DCL VAR(&ID) TYPE(*CHAR) LEN(2) /* THE MESSAGE DATA FOR CPF7020 IS: */ /* CHAR 10 - JOURNAL NAME */ /* CHAR 10 - JOURNAL LIBRARY NAME */ /* CHAR 10 - JOURNAL RECIEVER NAME */ /* CHAR 10 - JOURNAL RECEIVER LIBRARY NAME */ /* CHAR 10 - NOT USED */ /* CHAR 10 - NOT USED */ DCL VAR(&MSGDATA) TYPE(*CHAR) LEN(60) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&KEYVAR) TYPE(*CHAR) LEN(4) DCL VAR(&RCVNAME) TYPE(*CHAR) LEN(10) DCL VAR(&RCVLIB) TYPE(*CHAR) LEN(10) DCL VAR(&RCVLIB) TYPE(*CHAR) LEN(10) DCL VAR(&JRNNAME) TYPE(*CHAR) LEN(10) /* LAB CHECK PURPOSES ONLY */ IF COND(%SST(&ID 1 2) *EQ 'XX') THEN(GOTO + CMDLBL(END)) CHGVAR VAR(&MSGQ) VALUE('MSGQ') CHGVAR VAR(&LIB) VALUE('JORMTHA' *CAT &ID) CHGVAR VAR(&LCLRCVLIB) VALUE('JOHA' *CAT &ID) SNDMSG MSG('Submission of HAAPPLY was Successful') + TOUSR(JOTEAM *CAT &ID) /* RECEIVE A MESSAGE FROM THE MESSAGE QUEUE */ REPEAT: RCVMSG MSGQ(&LIB/&MSGQ) MSGKEY(*NONE) + WAIT(*MAX) RMV(*NO) KEYVAR(&KEYVAR) + MSGID(&MSGID) /* IGNORE MESSAGES THAT ARE NOT CPF7020 (RECEIVER DETACHED) */ IF (&MSGID *NE 'CPF7020' *AND (&MSGID *NE 'END1000')) GOTO REPEAT /* RECEIVE THE DATA FOR CPF7020 AND REMOVE THE MESSAGE */ RCVMSG MSGQ(&LIB/&MSGQ) MSGKEY(&KEYVAR) + WAIT(0) RMV(*YES) + MSGDTA(&MSGDATA) IF (&MSGID *EQ 'END1000') GOTO END CHGVAR VAR(&JRNNAME) VALUE(%SST(&MSGDATA 1 10)) CHGVAR VAR(&RCVNAME) VALUE(%SST(&MSGDATA 21 10)) CHGVAR VAR(&RCVLIB) VALUE(%SST(&MSGDATA 31 10)) CRTSAVF FILE(&LCLRCVLIB/SAVFRJ) /* SAVE RECEIVER TO SAVE FILE */ SAVOBJ OBJ(&RCVNAME) LIB(&RCVLIB) DEV(*SAVF) + OBJTYPE(*JRNRCV) SAVF(&LCLRCVLIB/SAVFRJ) /* RESTORE RECEIVER AND ASSOCIATE IT WITH THE LOCAL JOURNAL */ RSTOBJ OBJ(&RCVNAME) SAVLIB(&RCVLIB) DEV(*SAVF) + OBJTYPE(*JRNRCV) SAVF(&LCLRCVLIB/SAVFRJ) + RSTLIB(&LCLRCVLIB) /* APPLY JOURNAL CHANGES */ APYJRNCHGX JRN(&LCLRCVLIB/&JRNNAME) + FILE((&LCLRCVLIB/*ALL)) + RCVRNG(&LCLRCVLIB/&RCVNAME + &LCLRCVLIB/&RCVNAME) FROMENTLRG(*FIRST) + TOENTLRG(*LAST) CMTBDY(*NO) DLTJRNRCV JRNRCV(&LCLRCVLIB/&RCVNAME) DLTJRNRCV JRNRCV(&RCVLIB/&RCVNAME) DLTF FILE(&LCLRCVLIB/SAVFRJ) /* LOOP AROUND TO LOOK FOR THE NEXT RECEIVER */ GOTO REPEAT END: SNDMSG MSG('The Program HAAPPLY has Terminated') + TOUSR(JOTEAM *CAT &ID) ENDPGM