指定ジョブの強制終了を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
/************************************************************/ /* PROGRAM : 指定サブシステムの指定ジョブをキャンセル */ /* */ /* CALL CNLSBSJOB PARM(&P1,&P2,&P3,&P4) */ /* P1 SUBSYSTEM 10桁 入力必須,*ALL不可,総称名不可 */ /* P2 JOB 10桁 *ALL可,総称名可 */ /* P3 USER 10桁 *ALL可,総称名可 */ /* P4 JOB NO. 6桁 *ALL可,総称名不可 */ /* EX. CNLSBSJOB PARM('QBATCH' 'JOB*' '*ALL' '*ALL') */ /************************************************************/ PGM PARM(&SBSNAME &API_JBNAM &API_USER &API_JOBNR) DCL VAR(&SBSNAME) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNAME) TYPE(*CHAR) LEN(10) DCL VAR(&USER ) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNBR ) TYPE(*CHAR) LEN(6) DCL VAR(&STATUS) TYPE(*CHAR) LEN(10) DCL VAR(&JOBTYPE) TYPE(*CHAR) LEN(1) DCL VAR(&SUBTYPE) TYPE(*CHAR) LEN(1) DCL VAR(&ACTJOBSTS) TYPE(*CHAR) LEN(4) DCL VAR(&SUBSYSTEM) TYPE(*CHAR) LEN(10) DCL VAR(&KEYFLD) TYPE(*DEC) LEN(5 0) DCL VAR(&KEYFLDBIN) TYPE(*CHAR) LEN(4) /* PARAMETERS FOR QUSCRTUS */ DCL VAR(&USP_NAME) TYPE(*CHAR) LEN(10) DCL VAR(&USP_LIB) TYPE(*CHAR) LEN(10) DCL VAR(&USP_QUAL) TYPE(*CHAR) LEN(20) DCL VAR(&USP_TYPE) TYPE(*CHAR) LEN(10) DCL VAR(&USP_SIZE) TYPE(*CHAR) LEN(4) DCL VAR(&USP_FILL) TYPE(*CHAR) LEN(1) DCL VAR(&USP_AUT) TYPE(*CHAR) LEN(10) DCL VAR(&USP_TEXT) TYPE(*CHAR) LEN(50) /* PARAMETERS FOR QUSRTVUS */ DCL VAR(&STARTPOS) TYPE(*CHAR) LEN(4) DCL VAR(&DATALEN) TYPE(*CHAR) LEN(4) DCL VAR(&HEADER) TYPE(*CHAR) LEN(150) /* LIST DATA SECTION */ DCL VAR(&LST_OFFSET) TYPE(*DEC) LEN(9 0) DCL VAR(&LST_SIZE) TYPE(*DEC) LEN(9 0) DCL VAR(&LST_DATA) TYPE(*CHAR) LEN(4096) DCL VAR(&LST_NBR) TYPE(*DEC) LEN(9 0) DCL VAR(&LST_LEN) TYPE(*DEC) LEN(9 0) DCL VAR(&LST_LENBIN) TYPE(*CHAR) LEN(4) DCL VAR(&LST_POSBIN) TYPE(*CHAR) LEN(4) DCL VAR(&LST_COUNT) TYPE(*DEC) LEN(9) VALUE(0) DCL VAR(&FLD_NBR) TYPE(*DEC) LEN(5) VALUE(0) DCL VAR(&FLD_NBRBIN) TYPE(*CHAR) LEN(4) DCL VAR(&FLD_LEN) TYPE(*DEC) LEN(5) VALUE(0) DCL VAR(&FLD_LENBIN) TYPE(*CHAR) LEN(4) DCL VAR(&DTA_POS) TYPE(*DEC) LEN(5 0) DCL VAR(&KEY_POS) TYPE(*DEC) LEN(5 0) DCL VAR(&FLD_POS) TYPE(*DEC) LEN(5 0) DCL VAR(&FLD_COUNT) TYPE(*DEC) LEN(5) VALUE(0) /* PARAMETERS FOR QUSLJOB */ DCL VAR(&API_JBQUAL) TYPE(*CHAR) LEN(26) DCL VAR(&API_JBNAM) TYPE(*CHAR) LEN(10) DCL VAR(&API_USER) TYPE(*CHAR) LEN(10) DCL VAR(&API_JOBNR) TYPE(*CHAR) LEN(6) DCL VAR(&API_STATUS) TYPE(*CHAR) LEN(10) DCL VAR(&API_JOBTYP) TYPE(*CHAR) LEN(1) DCL VAR(&API_KEYARR) TYPE(*CHAR) LEN(8) DCL VAR(&API_NBRKEY) TYPE(*CHAR) LEN(4) /*-----------------------------------------------------*/ /* CREATE USER SPACE */ /*-----------------------------------------------------*/ CHGVAR VAR(&USP_NAME) VALUE('CNLSBSJOB') CHGVAR VAR(&USP_LIB) VALUE('QTEMP') CHGVAR VAR(&USP_QUAL) VALUE(&USP_NAME *CAT + &USP_LIB) CHGVAR VAR(&USP_TYPE) VALUE('MYTYPE') CHGVAR VAR(%BIN(&USP_SIZE)) VALUE(64000) CHGVAR VAR(&USP_FILL) VALUE(' ') CHGVAR VAR(&USP_AUT) VALUE('*USE') CHGVAR VAR(&USP_TEXT) VALUE('MY USER SPACE') /* CREATE USER SPACE */ CALL PGM(QUSCRTUS) PARM(&USP_QUAL &USP_TYPE + &USP_SIZE &USP_FILL &USP_AUT &USP_TEXT) CHGVAR VAR(&API_JBQUAL) VALUE(&API_JBNAM *CAT + &API_USER *CAT &API_JOBNR) CHGVAR VAR(&API_STATUS) VALUE('*ACTIVE') CHGVAR VAR(&API_JOBTYP) VALUE('*') CHGVAR VAR(%BIN(&API_NBRKEY)) VALUE(2) CHGVAR VAR(%BIN(&API_KEYARR 1 4)) VALUE(1906) CHGVAR VAR(%BIN(&API_KEYARR 5 4)) VALUE(101) CALL PGM(QUSLJOB) PARM(&USP_QUAL 'JOBL0200' + &API_JBQUAL &API_STATUS X'00000000' + &API_JOBTYP &API_NBRKEY &API_KEYARR) /*-----------------------------------------------------*/ /* RETRIEVE USER SPACE HEADER INFORMATION */ /*-----------------------------------------------------*/ CHGVAR VAR(%BIN(&STARTPOS)) VALUE(1) CHGVAR VAR(%BIN(&DATALEN)) VALUE(140) CALL PGM(QUSRTVUS) PARM(&USP_QUAL &STARTPOS + &DATALEN &HEADER) /*-----------------------------------------------------*/ /* RETRIEVE DATA IN LIST SECTION */ /*-----------------------------------------------------*/ CHGVAR VAR(&LST_OFFSET) VALUE(%BIN(&HEADER 125 4)) CHGVAR VAR(&LST_SIZE) VALUE(%BIN(&HEADER 129 4)) CHGVAR VAR(&LST_NBR) VALUE(%BIN(&HEADER 133 4)) CHGVAR VAR(&LST_LEN) VALUE(%BIN(&HEADER 137 4)) CHGVAR VAR(%BIN(&LST_POSBIN)) VALUE(&LST_OFFSET + 1) CHGVAR VAR(&LST_LENBIN) VALUE(%SST(&HEADER 137 4)) /*-----------------------------------------------------*/ /* RETRIEVE LIST DATA ENTRIES */ /*-----------------------------------------------------*/ CHGVAR VAR(&LST_COUNT) VALUE(0) LST_LOOP: IF (&LST_COUNT *EQ &LST_NBR) THEN(GOTO LST_END) CALL PGM(QUSRTVUS) PARM(&USP_QUAL &LST_POSBIN + &LST_LENBIN &LST_DATA) CHGVAR VAR(&JOBNAME) VALUE(%SST(&LST_DATA 1 10)) CHGVAR VAR(&USER) VALUE(%SST(&LST_DATA 11 10)) CHGVAR VAR(&JOBNBR) VALUE(%SST(&LST_DATA 21 6)) CHGVAR VAR(&STATUS) VALUE(%SST(&LST_DATA 43 10)) CHGVAR VAR(&JOBTYPE) VALUE(%SST(&LST_DATA 53 1)) CHGVAR VAR(&SUBTYPE) VALUE(%SST(&LST_DATA 54 1)) CHGVAR VAR(&FLD_NBRBIN) VALUE(%SST(&LST_DATA 61 4)) CHGVAR VAR(&FLD_NBR) VALUE(%BIN(&FLD_NBRBIN)) CHGVAR VAR(&DTA_POS) VALUE(65) CHGVAR VAR(&FLD_COUNT) VALUE(0) CHGVAR VAR(SUBSYSTEM) VALUE(' ') CHGVAR VAR(&ACTJOBSTS) VALUE(' ') FLD_LOOP: IF (&FLD_COUNT *EQ &FLD_NBR) THEN(GOTO FLD_END) CHGVAR VAR(&FLD_LENBIN) VALUE(%SST(&LST_DATA + &DTA_POS 4)) CHGVAR VAR(&FLD_LEN) VALUE(%BIN(&FLD_LENBIN)) CHGVAR VAR(&KEY_POS) VALUE(&DTA_POS + 4) CHGVAR VAR(&KEYFLDBIN) VALUE(%SST(&LST_DATA + &KEY_POS 4)) CHGVAR VAR(&KEYFLD) VALUE(%BIN(&KEYFLDBIN)) CHGVAR VAR(&FLD_POS) VALUE(&DTA_POS + 16) IF (&KEYFLD *EQ 1906) THEN(DO) CHGVAR VAR(&SUBSYSTEM) VALUE(%SST(&LST_DATA + &FLD_POS 10)) ENDDO IF (&KEYFLD *EQ 101) THEN(DO) CHGVAR VAR(&ACTJOBSTS) VALUE(%SST(&LST_DATA + &FLD_POS 4)) ENDDO CHGVAR VAR(&FLD_COUNT) VALUE(&FLD_COUNT + 1) CHGVAR VAR(&DTA_POS) VALUE(&DTA_POS + &FLD_LEN) GOTO FLD_LOOP FLD_END: IF ((&SUBSYSTEM *EQ &SBSNAME) *AND + (&JOBTYPE *NE 'M')) THEN(DO) /*-----------------------------------------------------*/ /* ENDJOB */ /*-----------------------------------------------------*/ ENDJOB JOB(&JOBNBR/&USER/&JOBNAME) OPTION(*IMMED) MONMSG MSGID(CPF0000) ENDDO CHGVAR VAR(&LST_COUNT) VALUE(&LST_COUNT + 1) CHGVAR VAR(%BIN(&LST_POSBIN)) + VALUE(%BIN(&LST_POSBIN) + &LST_LEN) GOTO LST_LOOP LST_END: DLTUSRSPC USRSPC(&USP_LIB/&USP_NAME) END: ENDPGM |