Unconfigured Ad Widget

Collapse

Announcement

Collapse
No announcement yet.

Can system value QINACTITV exclude for one job

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Can system value QINACTITV exclude for one job

    Hi, The system value QINACTITV affect for all interactive jobs. Any job without action over 15 minutes (QINACTITV value) will be ended by system. I have a job may stay and inactive over 15 minutes, is there any way to keep my job alive?

  • #2
    Can system value QINACTITV exclude for one job

    Kong, You can write a CL program that can selectively process the messages received by the message queue specified by system value QINACTMSGQ . Here is an example:
     *************** Beginning of data ************************************* CLMONINA: PGM DCL VAR(&DSPDEV) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNBR) TYPE(*CHAR) LEN(6) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(26) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&SBMTTD) TYPE(*CHAR) LEN(1) DCL VAR(&HOUR) TYPE(*CHAR) LEN(2) DCL VAR(&USER) TYPE(*CHAR) LEN(10) /* Check to see if this needs to be submitted. */ RTVJOBA TYPE(&SBMTTD) IF COND(&SBMTTD *EQ '1') THEN(DO) SBMJOB CMD(CALL PGM(MISLIB/CLMONINA)) JOB(CLMONINA) + JOBQ(QPGMR) JOBPTY(1) SYSLIBL(*SYSVAL) + INLLIBL(QGPL) RETURN ENDDO CHGJOB PURGE(*NO) MONMSG MSGID(CPF0000) /* Make sure the MSGQ exists. */ CHKOBJ OBJ(QINACTMSGQ) OBJTYPE(*MSGQ) MONMSG MSGID(CPF9801 CPF9810) EXEC(DO) SNDPGMMSG MSG('Message Queue not found in the Library + List.') MSGTYPE(*DIAG) SNDPGMMSG MSGID(CPF0002) MSGF(QCPFMSG) MSGTYPE(*ESCAPE) GOTO CMDLBL(END) ENDDO CLRMSGQ MSGQ(QINACTMSGQ) /* Wait for a Message to Appear. */ LOOP: RCVMSG MSGQ(QINACTMSGQ) WAIT(*MAX) RMV(*YES) + MSGDTA(&MSGDTA) MSGID(&MSGID) CHGVAR VAR(&DSPDEV) VALUE(%SST(&MSGDTA 1 10)) CHGVAR VAR(&USER) VALUE(%SST(&MSGDTA 11 10)) CHGVAR VAR(&JOBNBR) VALUE(%SST(&MSGDTA 21 6)) /* Is it the Inactive Message? */ If cond(&msgid *ne 'CPI1126') then( + SndPgmMsg msg('Msgid:' *bcat &msgid *tcat '.' *bcat &msgdta) ) If cond(&msgid *ne 'CPI1126') then(Goto cmdlbl(loop) ) /* After 8PM, End all Jobs. */ RTVSYSVAL SYSVAL(QHOUR) RTNVAR(&HOUR) IF COND(&HOUR *GT '19') THEN(GOTO CMDLBL(ENDJOB)) /* Selectively Disconnect Users or Workstations. */ IF COND((&DSPDEV *EQ 'DS010000') + *OR (&USER *EQ 'NODISC1') + *OR (&USER *EQ 'NODISC2')) THEN(GOTO + CMDLBL(LOOP)) IF COND( + (&USER *EQ 'PROGRAMMER') + *OR (&USER *EQ 'BIGGUY') + *OR (&USER *EQ 'USER4') + ) THEN(DO) DSCJOB JOB(&JOBNBR/&USER/&DSPDEV) MONMSG MSGID(CPF0000) GOTO CMDLBL(LOOP) ENDDO ENDJOB: ENDJOB JOB(&JOBNBR/&USER/&DSPDEV) MONMSG MSGID(CPF0000) /* SOME PROBLEM */ GOTO CMDLBL(LOOP) END: ENDPGM 
    The program will end or disconnect or ignore based upon who it is. Bill

    Comment

    Working...
    X