/********************************************************************/ /* */ /* Pgm Name...... BCS001C */ /* Description... SUBMIT CLIENT SERVER PROCESS FOR A USER */ /* */ /********************************************************************/ PGM PARM(&INTDTAQ &BCHDTAQ &LIB) DCL VAR(&INTDTAQ) TYPE(*CHAR) LEN(10) /* + Data queue used to talk to interactive + portion of job */ DCL VAR(&BCHDTAQ) TYPE(*CHAR) LEN(10) /* + Data queue used to talk to Batch portion + of job */ DCL VAR(&JOB) TYPE(*CHAR) LEN(10) DCL VAR(&USR) TYPE(*CHAR) LEN(10) DCL VAR(&JNR) TYPE(*CHAR) LEN(6) DCL VAR(&DTAARA) TYPE(*CHAR) LEN(7) DCL VAR(&LIB) TYPE(*CHAR) LEN(10) VALUE(MYLIB) /* GET INFO ABOUT THIS JOB TO PASS TO BATCH JOB */ RTVJOBA JOB(&JOB) USER(&USR) NBR(&JNR) /* MAKE JOB NAME THE SAME AS THE DATA AREA */ CHGVAR VAR(&DTAARA) VALUE('R' *TCAT &JNR) /* CHECK TO SEE IF IT IS ALREADY RUNNING */ CHKOBJ OBJ(&LIB/&DTAARA) OBJTYPE(*DTAARA) MONMSG MSGID(CPF9800) EXEC(GOTO CMDLBL(SUBMIT)) ALCOBJ OBJ((&LIB/&DTAARA *DTAARA *EXCL)) WAIT(0) /* IF LOCKED,THEN SKIP SUBMIT */ MONMSG MSGID(CPF9803 CPF1002) EXEC(GOTO + CMDLBL(ENDPGM)) /* IF ANY OTHER ERROR, SUBMIT */ MONMSG MSGID(CPF0000) DLCOBJ OBJ((&LIB/&DTAARA *DTAARA *EXCL)) MONMSG MSGID(CPF0000) /* SUBMIT UPDATES RUNNING IN BATCH */ SUBMIT: SBMJOB CMD(CALL PGM(BCS002C) PARM(&JOB &USR &JNR)) + JOB(&DTAARA) JOBD(MYJOBD) JOBQ(MULTI) + MSGQ(*NONE) /* Don't exit program til data area has been created */ AGAIN: CHKOBJ OBJ(&LIB/&DTAARA) OBJTYPE(*DTAARA) MONMSG MSGID(CPF9800) EXEC(DO) DLYJOB DLY(1) GOTO CMDLBL(AGAIN) ENDDO /* Interactive data queue */ AGAIN2: CHGVAR VAR(&INTDTAQ) VALUE('RCLT' *TCAT &JNR) CHKOBJ OBJ(&LIB/&INTDTAQ) OBJTYPE(*DTAQ) MONMSG MSGID(CPF9800) EXEC(DO) DLYJOB DLY(1) GOTO CMDLBL(AGAIN2) ENDDO /* Batch data queue */ AGAIN3: CHGVAR VAR(&BCHDTAQ) VALUE('RBCH' *TCAT &JNR) CHKOBJ OBJ(&LIB/&BCHDTAQ) OBJTYPE(*DTAQ) MONMSG MSGID(CPF9800) EXEC(DO) DLYJOB DLY(1) GOTO CMDLBL(AGAIN3) ENDDO RCLRSC ENDPGM: /* IF PARMS WERE BLANK, THEN GET DATA QUEUE NAMES */ IF COND(&INTDTAQ = ' ' *OR &BCHDTAQ = ' ') + THEN(DO) CHGVAR VAR(&INTDTAQ) VALUE('RCLT' *TCAT &JNR) CHGVAR VAR(&BCHDTAQ) VALUE('RBCH' *TCAT &JNR) ENDDO ENDPGM