ID #1143

指定ジョブの強制終了

指定ジョブの強制終了を行います。

/************************************************************/ /* 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

タグ: -

関連エントリー:

最終更新: 2017-04-30 19:21
製作者:
改訂: 1.10

Digg it! Share on Facebook このレコードを印刷する 友達に教える PDF ファイルで表示する
Propose a translation for Propose a translation for
この FAQ を評価してください:

評価点数: 0 (0 件の投票)

完全に役に立たない 1 2 3 4 5 最も価値がある

このエントリーにコメントできません。