|
I hope the following, excerpted from our Introduction to AS/400 Journaling session, helps and is not too big: Copyright 1991-2001 MPH, Inc., Okemos, MI USA, All Rights Reserved ** RECEIVE JOURNAL ENTRY RCVJRNE JRN($JRNLIB/$JRN) EXITPGM(PGMLIB/PGMNAME) FILE(FILELIB/FILENAME) ENTTYP(PT UP DL) DELAY(60) ** SPECIFIED EXIT PROGRAM RECEIVES NEW JOURNAL RECEIVER ENTRIES ONE AT A TIME EVERY 60 SECONDS FROM JOURNAL $JRN IN LIBRARY $JRNLIB ** DEFAULT IS EVERY 30 SECONDS ** TWO PARAMETERS PASSED ** JOURNAL ENTRY FIRST PARAMETER ** SINGLE CHARACTER FLAG SECOND PARAMETER ** SIMILAR TO FORMAT OF QADSPJRN FORMAT OF STATUS FLAG PARAMETER 2 9 RCVJRNE ENDS IF PROGRAM SETS TO 9 0 RCVJRNE SETS TO 0 IF NO NEW JOURNAL ENTRIES TO PASS 1 RCVJRNE SETS TO 1 IF NEW JOURNAL ENTRY PASSED ** PROGRAM CALLED WITH PARM 2 = '1' IF NEW JOURNAL RECEIVER ENTRY ** PROGRAM CALLED WITH PARM 2 = '0' IF NO MORE JOURNAL RECEIVER ENTRIES ** PROGRAM SETS PARM 2 = '9' TO END CL PROGRAM ** FILE OPTIONAL ** FILE(*ALL) IS DEFAULT ** ENTRY TYPE OPTIONAL ** ENTTYP(*ALL) DEFAULT ** PT = RECORD ADDED ** UP = RECORD UPDATED ** DL = RECORD DELETED ** ENTTYP(*RCD) ALSO SENDS UB (BEFORE IMAGE) ** NUMEROUS OTHER SELECTION CRITERIAL ALSO AVAILABLE /* */ /* STRJPGMC - START JOURNAL PROCESSING PROGRAM */ /* 12 JUL 92 - CHARLES L. MASSOGLIA */ /* */ /* COPYRIGHT 1992, MPH, INC., OKEMOS, MICHIGAN, ALL RIGHTS RESERVED */ /* */ PGM /* DECLARE PROGRAM VARIABLES */ DCL VAR(&JOBTYPE) TYPE(*CHAR) LEN(1) DCL VAR(&JOB) TYPE(*CHAR) LEN(10) DCL VAR(&USER) TYPE(*CHAR) LEN(10) DCL VAR(&NBR) TYPE(*CHAR) LEN(6) DCL VAR(&STATUS) TYPE(*CHAR) LEN(1) /* VERIFY THAT JOB IS NOT ALREADY ACTIVE */ RTVDTAARA DTAARA(KWAJP (27 1)) RTNVAR(&STATUS) IF COND(&STATUS *EQ 'A') THEN(DO) SNDPGMMSG MSG('Journal processing program + already active') MSGTYPE(*COMP) RETURN ENDDO /* SUBMIT JOB TO BATCH IF RUNNING INTERACTIVELY */ RTVJOBA TYPE(&JOBTYPE) /* '1'=INTERACTIVE */ IF COND(&JOBTYPE *EQ '1') THEN(DO) SBMJOB CMD(CALL PGM(STRJPGMC)) JOBQ(QS36EVOKE) SNDPGMMSG MSG('Journal processing program + has been submitted') MSGTYPE(*COMP) RETURN ENDDO /* RETRIEVE JOB NAME */ RTVJOBA JOB(&JOB) USER(&USER) NBR(&NBR) /* PUT JOBNAME AND ACTIVE FLAG IN KWAJP DTAARA */ CHGDTAARA DTAARA(KWAJP (1 27)) VALUE(&JOB *CAT + &USER *CAT &NBR *CAT 'A') /* START JOURNAL PROCESSING PROGRAM */ RCVJRNE JRN($JRNLIB/$JRN) EXITPGM(EIRUKW) + FILE((STUDNAME) (CUSTMAST)) ENTTYP(DL PT UP) MONMSG MSGID(CPF7062) /* CPF7062=No entries + converted or received */ END: ENDPGM ** CL PROGRAM SUBMITS ITSELF IT RUNNING INTERACTIVELY ** DATA AREA USED TO CONTROL WHETHER JOB ALREADY RUNNING F* F* EIRUKW - UPDATE KEYWORD/SOUNDEX FROM JOURNAL RECEIVER F* 19 JUL 92 - CHARLES L. MASSOGLIA F* F* COPYRIGHT 1992, MPH, INC., OKEMOS, MICHIGAN ALL RIGHTS RESERVED F* IDsname....NODsExt-file++.............OccrLen+............... I* I* EXTERNALLY DEFINED DATA STRUCTURE TO RECEIVE RECEIVER IMAGE I* (NOTE LENGTH 4221 TO OVERCOME JOESD LENGTH OF 100. POSITIONS I* 1-125 DEFINE JOURNAL FIELDS, DATA IN POSITIONS 126-4221 = 4096.) I* IJRNRCV E DSQADSPJRN 4221 I 126 381 DATA I* I* EXTERNALLY DEFINED DATA STRUCTURE TO RECEIVE CUSTMAST IMAGE I* IFILECM E DSCUSTMAST I* I* EXTERNALLY DEFINED DATA STRUCTURE TO RECEIVE STUDNAME IMAGE I* IFILESN E DSSTUDNAME I* I* NAMED DATA AREA TO TRACK JOB NAME AND STATUS I* IDsname....NODsExt-file++.............OccrLen+............... IKWAJP UDS 256 I 27 27 @STAT CSRn01n02n03Factor1+++OpCdeFactor2+++ResultLenDHHILOEQComment C* C*** ENTRY PARAMETER LIST C* C *ENTRY PLIST C PARM JRNRCV EXT DEF DS C PARM $$FLAG 1 CONTROL FLAG C* C*** RETURN IF ENDJOB, PWRDWNSYS, ENDSYS, OR ENDSBS C*** IN PROGRESS WITH *CTRLD OPTION SPECIFIED C* C SHTDN 50 GT ON IF ENDxxx B001 C *IN50 IFEQ *ON OR PWRDWNSYS 001 C MOVE '9' $$FLAG 1 END RCVJRNE CMD 001 C MOVE 'I' @STAT DTAARA STATUS 001 C MOVE *ON *INLR END RPG PGM 001 C RETRN RETURN TO CL PGM E001 C ENDIF C* C*** RETURN IF NO NEW ENTRIES OR INCORRECT ENTRY TYPE C* B001 C $$FLAG IFEQ '0' IF NO NEW ENTRIES 001 C JOENTT ORNE 'DL' OR NOT DELETE 001 C JOENTT ANDNE'PT' AND NOT ADD 001 C JOENTT ANDNE'UP' AND NOT UPDATE 001 C RETRN RETURN TO CL PGM E001 C ENDIF C* C*** PROCESS FILES C* B001 C JOOBJ CASEQ'CUSTMAST'@@UPCM PROCESS CUSTMAST 001 C JOOBJ CASEQ'STUDNAME'@@UPSN PROCESS STUDNAME E001 C ENDCS C* C*** DONE C* C RETRN RETURN TO CL PGM *---------------------------------------------------------------- * Subroutine @@UPCM - UPDATE CUSTMAST KEYWORD/SOUNDEX FILES *---------------------------------------------------------------- C @@UPCM BEGSR C* C*** MOVE RECEIVER DATA IMAGE (DATA) INTO EXTERNALLY DEFINED C*** DATA STRUCTURE (FILECM) TO GET CUSTMAST CMxxxx FIELDS C* C MOVELDATA FILECM C* C*** CALL UPDATE PROGRAM C* C CALL 'KWRUKW' C PARM CMID $ID 90 ID NUMBER C PARM JOENTT ENTRY TYPE C PARM CMNAME $IN 128 NAME C PARM 'CM' $DSG 2 FILE DESIGNATOR C PARM $ERR 1 ERROR FLAG C ENDSR *---------------------------------------------------------------- * Subroutine @@UPSN - UPDATE STUDNAME KEYWORD/SOUNDEX FILES *---------------------------------------------------------------- C @@UPSN BEGSR C* C*** MOVE RECEIVER DATA IMAGE (DATA) INTO EXTERNALLY DEFINED C*** DATA STRUCTURE (FILESN) TO GET STUDNAME SNxxxx FIELDS C* C MOVELDATA FILESN C* C*** CALL UPDATE PROGRAM C* C CALL 'KWRUKW' C PARM SNID $ID 90 ID NUMBER C PARM JOENTT ENTRY TYPE C PARM SNNAME $IN 128 NAME C PARM 'SN' $DSG 2 FILE DESIGNATOR C PARM $ERR 1 ERROR FLAG C ENDSR ** PROGRAM RECEIVES JOURNAL ENTRIES, CHECKS FILE, AND CALLS ANOTHER PROGRAM TO PROCESS ENTRIES/* */ /* ENDJPGMC - END JOURNAL PROCESSING PROGRAM */ /* 30 JUL 92 - CHARLES L. MASSOGLIA */ /* */ /* COPYRIGHT 1992, MPH, INC., OKEMOS, MICHIGAN, ALL RIGHTS RESERVED */ /* */ PGM /* DECLARE PROGRAM VARIABLES */ DCL VAR(&JOB) TYPE(*CHAR) LEN(10) DCL VAR(&USER) TYPE(*CHAR) LEN(10) DCL VAR(&NBR) TYPE(*CHAR) LEN(6) DCL VAR(&STATUS) TYPE(*CHAR) LEN(1) /* DETERMINE WHETHER JOURNAL PROCESSING JOB IS ACTIVE */ RTVDTAARA DTAARA(KWAJP (27 1)) RTNVAR(&STATUS) IF COND(&STATUS *NE 'A') THEN(DO) SNDPGMMSG MSG('Journal processing + program is not active.') MSGTYPE(*COMP) RETURN ENDDO /* RETRIEVE JOURNAL PROCESSING JOB NAME AND END IT */ RTVDTAARA DTAARA(KWAJP (1 10)) RTNVAR(&JOB) RTVDTAARA DTAARA(KWAJP (11 10)) RTNVAR(&USER) RTVDTAARA DTAARA(KWAJP (21 6)) RTNVAR(&NBR) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Ending + journal processing program. Please wait + 1.5 minutes') TOPGMQ(*EXT) MSGTYPE(*STATUS) ENDJOB JOB(&NBR/&USER/&JOB) DELAY(60) /* IF JOB HAS COMPLETED, DISPLAY MESSAGE AND CLEAR DATA AREA */ MONMSG MSGID(CPF1321 CPF1362) EXEC(DO) /* + CPF1321-JOB NOT FOUND, CPF1362-JOB + COMPLETED */ CHGDTAARA DTAARA(KWAJP (27 1)) VALUE('I') /* CHANGE + STATUS TO INACTIVE */ SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Journal + processing program not active. + OK to restart') MSGTYPE(*COMP) RETURN ENDDO /* WAIT FOR JOURNAL PROCESSING PROGRAM TO SHUTDOWN */ DLYJOB DLY(75) /* DETERMINE WHETHER JOURNAL PROCESSING JOB IS STILL ACTIVE */ RTVDTAARA DTAARA(KWAJP (27 1)) RTNVAR(&STATUS) IF COND(&STATUS *EQ 'A') THEN(DO) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Could + not end journal processing program') + MSGTYPE(*ESCAPE) RETURN ENDDO /* SEND SUCCESSFUL CANCEL MESSAGE */ SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Journal + processing program ended') MSGTYPE(*COMP) ENDPGM ** CL PROGRAM EXECUTES A CONTROLLED END JOB OF JOURNAL PROCESSING PROGRAM ** JOURNAL PROCESSING PROGRAM EXECUTED SHTDN COMMAND TO CHECK FOR END JOB Charles L.Massoglia, President Massoglia Technical Consulting, Inc. cmassoglia@voyager.net In MI 517-676-9700 or in NC 919-363-9395 ----- Original Message ----- From: "Chris Beck" <CBeck@good-sam.com> To: <MIDRANGE-L@midrange.com> Sent: Monday, 13 August, 2001 14:45 Subject: Receive journal exit program > Has anyone got any examples of using the exit program on the RCVJRNE command > that they are willing to share, or know where I can find some. > > > Thanks > > Chris Beck
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.