I am getting this following abend SD22 when executing a Assembler code.
The name of the program is TSOCANB. The high level fuctionality of the program is to cancel any user ( in System B or System D) if he logs into a data base ( starting with P102044 or P102711 or D102544 ).
Also Please find the code below the JESYMSG.
All help is highly appreciated.
Thanks In advance.
Karun.
Please find the JESYMSG for this job below :
Code:
ICH70001I DM77 LAST ACCESS AT 08:17:10 ON MONDAY, APRIL 4, 2005
IEF236I ALLOC. FOR DM77ZAP TESTIT
IEF237I JES2 ALLOCATED TO SYSABEND
IEF237I JES2 ALLOCATED TO SYSUDUMP
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSOUT
IEF237I JES2 ALLOCATED TO MSGOUT
IEF237I JES2 ALLOCATED TO CMDIN
IEF237I 32CE ALLOCATED TO ABNLTERM
IEF237I 32CE ALLOCATED TO SYS00001
IGD104I SYS2.COMPUWAR.ABENDAID.DDIO RETAINED, DDNAME=SYS00001
IEF237I 32CE ALLOCATED TO SYS00002
IEF237I 32CE ALLOCATED TO SYS00003
AB400 ===== ABEND-AID =====
REPORT WRITTEN TO REPORT NUMBER/DATASET:
009347/SYS2.COMPUWAR.ABENDAID.DDIO
JOB-DM77ZAP STEP-TESTIT
ABEND CODE=SD22
IGD104I SYS2.COMPUWAR.ABENDAID.REPORTS RETAINED, DDNAME=SYS00003
IGD104I SYS2.COMPUWAR.ABENDAID.DDIO RETAINED, DDNAME=SYS00002
IGD104I SYS2.COMPUWAR.ABENDAID.DDIO RETAINED, DDNAME=ABNLTERM
IEA995I SYMPTOM DUMP OUTPUT
SYSTEM COMPLETION CODE=D22 REASON CODE=00000008
TIME=08.18.00 SEQ=05432 CPU=0000 ASID=00D5
PSW AT TIME OF ERROR 070C1000 86E6DD88 ILC 2 INTC 0D
NO ACTIVE MODULE FOUND
NAME=UNKNOWN
DATA AT PSW 06E6DD82 - C25718F0 0A0D181A 1FFF43F0
AR/GR 0: 80B1EB3E/00000008 1: 00000000/84D22000
2: 00000000/007FD620 3: 00000000/00000000
4: 00000000/007C8AA8 5: 00000000/007FD5C0
6: 00000000/00000000 7: 00000000/007E5C82
8: 00000000/007E5484 9: 00000000/00000040
A: 00000000/007E5340 B: 00000000/86E6D03E
C: 00000000/06E6E03D D: 00000000/000068B0
E: 00000000/00FED600 F: 00000000/00000008
END OF SYMPTOM DUMP
IEF472I DM77ZAP TESTIT - COMPLETION CODE - SYSTEM=D22 USER=0000 REASON=00000008
IEF285I DM77.DM77ZAP.JOB44792.D0000102.? SYSOUT
IEF285I DM77.DM77ZAP.JOB44792.D0000103.? SYSOUT
IEF285I DM77.DM77ZAP.JOB44792.D0000104.? SYSOUT
IEF285I DM77.DM77ZAP.JOB44792.D0000105.? SYSOUT
IEF285I DM77.DM77ZAP.JOB44792.D0000106.? SYSOUT
IEF285I DM77.DM77ZAP.JOB44792.D0000101.? SYSIN
*>> A. C. NIELSEN CO. INFORMATION CENTER <<*
DDNAME I/O COUNT DEV-SECONDS DDNAME I/O COUNT DEV-SECONDS DDNAME I/
SYSABEND* 0 **NONE** SYSUDUMP* 0 **NONE** SYSPRINT*
MSGOUT * 0 **NONE** CMDIN * 0 **NONE** SYS00001
SYS00002 93 0.000 ABNLTERM 0 **NONE**
IEF373I STEP/TESTIT /START 2005094.0818
IEF374I STEP/TESTIT /STOP 2005094.0818 CPU 0MIN 05.16SEC SRB 0MIN 00.15S
IEF375I JOB/DM77ZAP /START 2005094.0818
IEF376I JOB/DM77ZAP /STOP 2005094.0818 CPU 0MIN 05.16SEC SRB 0MIN 00.15S.
THE CODE:-
----------------
TSOCAN TITLE 'TSO SESSION CANCELER'
*01/01/98 START CBSI Y2K
***********************************************************************
* PROGRAM REVIEWED AS PER ACN S & P DOCUMENT. *
* PROGRAM NOT CHANGED. *
***********************************************************************
*01/01/98 END CBSI Y2K
***********************************************************************
* *
* FUNCTION: CANCEL CUSTOMER TSO SESSION WHEN IN CONFLICT WITH *
* PRODUCTION BATCH JOB.... *
* *
* CALLING SEQUENCE: SUPPLY A PARAMETER STRING AS FOLLOWS: *
* PARM='.UUUUUUU,MESSAGE-TEXT' *
* WHERE: UUUUUUU IS THE INTENDED TSO USER *
* MESSAGE-TEXT IS THE STRING TO BE SENT *
* (MAXIMUM LENGTH IS 80) *
* NOTE: THE PERIOD AND COMMA ARE REQUIRED AS THEY *
* DELIMIT THE USERID *
* NOTE: THE DATE AND EXECUTING JOB NAME ARE APPENDED *
* TO THE MESSAGE-TEXT STRING *
* *
* ATTRIBUTES: REENTRANT, REUSABLE, REFRESHABLE. *
* *
* COMPILING NOTES: *
* - THIS PROGRAM CAN BE COMPILED/LINKED IN SCLM, BUT IT CAN'T *
* RUN OUT OF AN SCLM LOADLIB. *
* - YOU HAVE TO HAVE IT COPIED FROM SCLM LOAD LIB
* TO SYS2.LINKLIB2 *
* *
***********************************************************************
REGEQU
TSOCAN CSECT
TSOCAN RMODE ANY
TSOCAN AMODE 31
*
STM 14,12,12(13) SAVE REGS IN SAVEAREA 00026
BALR 12,0 ESTABLISH REG VALUE 00026
USING *,12 ESTABLISH CSECT ADDR 00028
*
LR R2,R1 SAVE THE PARM PTR
STORAGE OBTAIN, X
LENGTH=DSECT0L, X
LOC=(BELOW)
LR R11,R1 MAP DSECT STORAGE
USING DSECT0,R11 TO REG 11 NOW!
*
LR R1,R2 RESTORE PARM PTR
*
LA R2,SAVEAREA LOAD ADDR OF NEW SAVEAREA
ST R13,4(R2) STORE PTR TO OLD SAVEAREA
ST R2,8(R13) STORE PTR TO NEW IN OLD
LR R13,R2 MAKE NEW CURRENT
*
SETUP EQU *
*
SR R1,R1
ST R1,EOFIND
USING PSA,R1
L R1,FLCCVT2
DROP R1
*KK1-S REMOVED THIS TO MAKE SYSTEM INDEPENDENT
*KK1 LA R1,340(R1)
*KK1 CLC 0(8,R1),SYSDNAME REALLY CHECKING FOR SYSB
*KK1 BE GOODSYS
*KK1 WTO 'THIS PROGRAM CAN ONLY BE RAN ON SYSB',ROUTCDE=11
*KK1 B EXITSAVE
*KK1-E
GOODSYS EQU *
*
*
USING PSA,R0 HOME ADDR ASCB
L R1,PSAAOLD
USING ASCB,R1 PRIMARY ASID'S ASCB
L R1,ASCBASXB
DROP R1
USING ASXB,R1
MVC THISUSER(8),ASXBUSER
DROP R1
*
*KK1-S
CLC =C'TSTA125',THISUSER DEVELOPERS LOOP.
BE TESTEXLN DEVELOPER HAS EXCELLENT.
* DM AND DK USER PROCESSING
CLC HLQDM(2),THISUSER CHECKING FOR DM.
BE VALIDUSR
CLC HLQDK(2),THISUSER CHECKING FOR DK.
BNE UNAUTHO IF NOT ANY OF ABOVE EXIT.
*
VALIDUSR EQU *
LA R2,THISUSER
CLC VALLOW,2(R2) THIS TO CATCH DM00/DK00.
BE UNAUTHO EXIT WITH MESSAGE.
CLC VALLOW,2(R2) THIS TO CATCH LESS THAN DM00.
BH UNAUTHO EXIT WITH MESSAGE.
CLC VALHGH,2(R2) THIS TO CATCH DM99/DK99.
BE EXCELLNT PROCESS FURTHER.
CLC VALHGH,2(R2) THIS TO CATCH DM01/DK01 TO-
BH EXCELLNT -DM98/DK98 PROCESS FURTHER.
* ANY THING ELSE TRAPPED BELOW.
*KK1-E
*KK1 CLC =C'DM77',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM05',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM28',THISUSER . DAN HEINZ 1/30/98 RPC
*KK1 BE EXCELLNT . DAN HEINZ 1/30/98 RPC
*KK1 CLC =C'DM32',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM69',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM80',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM81',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'SP',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'SS',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DK10',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DK31',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DK70',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK99',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK74',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK79',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK76',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK26',THISUSER
*KK1 BE GOODUSER
*KK1-S
UNAUTHO EQU *
*KK1-E
WTO 'UNAUTHORIZED USER ACCESS, EXITING!',ROUTCDE=11
B EXITSAVE
*
GOODUSER EQU *
*KK1-S
* REMOVED THIS AS NO TIME DEPENDENCE ALL EXCELLENT USERS
*KK1 L R15,16 CVT BASE
*KK1 ICM R15,15,CVTUSER-CVT(R15) CVTUSER (NIC1 SSCT)
*KK1 BZ EXITSAVE (NIC1 ISN'T ACTIVE, I GUESS)
*KK1 ICM R15,15,SSCTSSVT-SSCT(R15) NIC1'S SSVT
*KK1 BZ EXITSAVE (NIC1 IS DEAD - HOW SAD!)
*KK1 LUSE NIC1SSVT,R15 INDICATE WHERE WE ARE NOW
*KK1 CLI UVTHOUR,255 IS NIC1 UNSURE OF THINGS ?
*KK1 BE EXITSAVE YES - THATS GOOD ENOUGH FOR
*KK1 CLI UVTHOUR,7 IS IT BEFORE 7AM ?
*KK1 BNH EXCELLNT YES - OKAY SO FAR
*KK1 CLI UVTHOUR,19 IS IT AFTER 6PM ?
*KK1 BNL EXCELLNT YES - THAT'S OKAY, TOO
*KK1 CLI UVTWEEKD,6 IS IT SATURDAY OR SUNDAY ?
*KK1 BNL EXCELLNT NO - THEN FORGET ABOUT THIS
*KK1
*KK1 WTO 'UNAUTHORIZED EXECUTION WINDOW',ROUTCDE=11
*KK1 B EXITSAVE
*KK1-E
*
*KK1-S
TESTEXLN EQU *
*
MVI TESTFLAG,C'Y' TEST FLAG FOR DEVLOPER
*
*KK1-E
*
EXCELLNT EQU *
*
*
* MVC THISSYSN(8),0(R1)
*
STORAGE OBTAIN,LENGTH=GETMAC1L,LOC=BELOW,COND=YES
ST R1,GETRTNAD THIS IS GET PROCESSING ADDRESS
*
STORAGE OBTAIN,LENGTH=EOFCODEL,LOC=BELOW,COND=YES
ST R1,EOFRTNAD THIS IS EOF PROCESSING ADDRESS
*
STORAGE OBTAIN,LENGTH=PUTMAC1L,LOC=BELOW,COND=YES
ST R1,PUTRTNAD THIS IS GET PROCESSING ADDRESS
*
STORAGE OBTAIN,LENGTH=FOURMEGL,LOC=ANY,COND=YES
ST R1,GRSWRKAD THIS IS GET PROCESSING ADDRESS
*
MVC CMDIN(CMDINL),CMDINTP COPY TO DSECT STORAGE
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,CMDIN
LA R4,OPENLIST
OPEN ((R3),INPUT),MODE=31,MF=(E,(R4))
LTR R15,R15
BZ OPENOUT
WTO 'OPEN FAILED FOR CMDIN DDNAME',ROUTCDE=11
B EXITNCLS
*
OPENOUT EQU *
*
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,MSGOUT
LA R4,OPENLIST
OPEN ((R3),OUTPUT),MODE=31,MF=(E,(R4))
LTR R15,R15
BZ READRCRD
WTO 'OPEN FAILED FOR MSGOUT DDNAME',ROUTCDE=11
B EXITNCLS
*
*
READRCRD EQU *
MVC CMDREC(80),SPACES
READLOOP EQU *
*
L R8,EOFRTNAD GET BELOW 16MB EOF RTN ADDR
L R5,GETRTNAD GET BELOW 16MB GET RTN ADDR
*
LA R1,CMDIN ADDR OF INPUT DCB
USING IHADCB,R1 MAP IT
STCM R8,7,DCBEODA STORE THE EOF RTN ADDR
DROP R1
*
MVC 0(EOFCODEL,R8),EOFCODE
MVC 0(GETMAC1L,R5),GETMAC1
LA R4,CMDIN LOAD ADDR OF INPUT DCB
LA R3,CMDREC LOAD ADDR OF INPUT RECORD
*
LA R7,EOFRTN LOAD ADDR OF EOF RTN
O R7,HBITON MAKE 31 BIT ADDR
*
LA R6,MGCREAD LOAD RTN RETURN ADDR
O R6,HBITON MAKE 31 BIT ADDR
*
BSM R0,R5 GO GET THE RECORD
*
MGCREAD EQU *
CLC CMDREC(8),KGFDSN
BE CHCKAUTH
CLC CMDREC(8),NMRDSN
*KK1-S
* BNE BADDSN
BE CHCKAUTH
CLI TESTFLAG,C'Y' CHECK DEVELOPER FLAG.
* BE TSTDATA
BNE BADDSN IF NOT SET EXIT.
*
TSTDATA EQU *
CLC CMDREC(8),TSTDSN CHECK FOR D102544.
BNE BADTST
*KK1-E
CHCKAUTH EQU *
MVC MGCRELS(MGCREPL),MGCREL COPY TO DSECT STORAGE
TESTAUTH FCTN=1,KEY=YES,RBLEVEL=1
LTR R15,R15 TEST IF AUTHORIZED
BZ GRSSCAN AUTHORIZED; SO GO ISSUE CMD
* WTO 'NOT AUTHORIZED AT THIS TIME',ROUTCDE=11
* B EXIT FINISHED; SO EXIT
*
GRSSCAN EQU *
*
L R10,GRSWRKAD GQSCAN WORKAREA
LTR R15,R15 ANY STORAGE RECEIVED?
BZ GQSCANT NO, ALL DONE
ABEND 001,DUMP INFORM USER OF ERROR
GQSCANT EQU *
SR R3,R3 ZERO REG
ST R3,TOKEN INIT TOKEN
*BZM LA R3,FOURMEG LOAD WORK AREA SIZE
MVC RNAME(17),CMDREC COPY DSN NAME TO RNAME
MVC GQSCANW(GQSCANL),GQSCANC
LA R1,GQSCANW
*
SYSDSN EQU *
GQSCAN AREA=((10),FOURMEGL), WORK AREA AND LENGTH FOR GQSCAN X
SCOPE=ALL, STEP/SYSTEM/SYSTEMS REQUEST X
RESNAME=(QNAME,RNAME,RNAMEL,GENERIC), X
TOKEN=TOKEN,MF=(E,(R1))
COMMON EQU *
STCM R0,12,RIBSIZE SAVE GQSCAN RIB SIZE
STCM R0,3,RIBESIZE SAVE GQSCAN RIBE SIZE
LR R7,R1 SAVE NUMBER OF RIBS RETURNED
*
CH R15,=H'4' ANYTHING RETURNED?
BE NOTFOUND NO, ALL DONE
CH R15,=H'12' GQSCAN ERROR?
BE GQERROR YES, INFORM USER
*
CH R15,=H'16' INVALID SYSNAME?
BE GQERROR YES, INFORM USER
*
ST R15,RETCODE SAVE GQSCAN RETURN CODE
USING RIB,R10 DSECT ADDRESSABILITY
DOIT EQU *
*
L R8,RIBNRIBE NUMBER OF RIBES
LR R9,R10 ADDRESS OF RIB
AH R9,RIBSIZE ADD SIZE OF RIB
USING RIBVAR,R9 USING FOR ADDRESSABILITY
*
LR R7,R9 ADDRESS OF RIB VARIABLE SECTION
AH R7,RIBVLEN ADDRESS OF FIRST RIBE
USING RIBE,R7 USING FOR ADDRESSABILITY
*
ISSUECMD EQU *
*
L R5,PUTRTNAD LOAD ADDR OF BELOW 16MB PUT RTN
*
MVC MSGREC(80),SPACES INIT THE OUTPUT RECORD
MVC MSGREC(17),RIBRNAME
LA R1,MSGREC ADDR OF OUTPUT RECORD
AH R1,TWENTY
MVC 0(8,R1),RIBEJBNM ADD THE USERID TO MESSAGE
AH R1,TENH
MVC 0(8,R1),RIBESYSN ADD THE SYSID TO MESSAGE
*
TM RIBERFLG,B'10000000'
BO SHARED
EXCL EQU *
MVC 10(8,R1),EXCLSV ADD THE SYSID TO MESSAGE
SHARED EQU *
MVC 10(8,R1),SHR ADD THE SYSID TO MESSAGE
*
MVC 0(PUTMAC1L,R5),PUTMAC1
LA R4,MSGOUT ADDR OF DCB MSGOUT
LA R3,MSGREC ADDR OF OUTPUT RECORD
*
LA R6,GOTIT ADDR OF RETURN ADDR
O R6,HBITON MAKE IT 31 BIT ADDR
*
LOOPIT EQU *
*
*KK1-S REMOVED THIS TO MAKE SYSTEM INDEPENDENT
*KK1 CLC RIBESYSN(8),SYSDNAME
*KK1 BNE WRITEIT
*KK1-E
*
LH R2,RIBEASID GET USER ASID
L R1,16 CVT POINTER
L R1,556(R1) ASVT ADDRESS
L R15,512(R1) PICK UP MAXUSER VALUE
LTR R15,R15 ANY USERS?
BZ NONAME NO, INFORM USER OF ERROR
LA R1,528(R1) BUMP TO FIRST VALID ASVT ENTRY
NEXTUSER TM 0(R1),X'80' FREE ASID?
BO NEXTASID YES, IGNORE IT
L R14,0(R1) PICK UP ASCB POINTER
CH R2,36(R14) EQUAL ASID'S
BE SETUSER YES, POINT TO USER NAME
NEXTASID A R1,=F'4' BUMP TO NEXT ASCB
BCT R15,NEXTUSER POINT TO NEXT ASCB
NONAME EQU *
ABEND 002,DUMP
SETUSER L R2,60(R14) GET TSB OUT OF ASCBTSB
LTR R2,R2
BZ NOTTSOUS
* MODESET KEY=ZERO GET KEY ZERO FOR MGCR
* MVC 45(8,R3),104(R2)
* MODESET KEY=NZERO GET KEY ZERO FOR MGCR
B WRITEIT GO WRITE THE RECORD
*
NOTTSOUS EQU *
MVC 35(32,R3),NOTTSOTX ISSUE NOT A TSO USER MESSAGE
WRITEIT EQU *
BSM R0,R5 WRITE AN OUTPUT RECORD
*
GOTIT EQU *
*
ISSUEMSG EQU *
*
*KK1-S REMOVED THIS TO MAKE SYSTEM INDEPENDENT
*KK1 CLC RIBESYSN(8),SYSDNAME
*KK1 BNE AFTRCMMD
*KK1-E
*
MVC CMDPARM(82),CMDPARMP
LA R3,CMDPARM
MVC 11(8,R3),RIBEJBNM
MODESET KEY=ZERO GET KEY ZERO FOR MGCR
MGCRE TEXT=(R3),MF=(E,MGCRELS),CONSID=CONID
MODESET KEY=NZERO GET KEY ZERO FOR MGCR
* B EXIT
AFTRCMMD EQU *
*
A R7,THRTYSIX GO TO NEXT RIBE
BCT R8,ISSUECMD CHECK IF LAST RIBE
CLC EOFCOND(4),EOFIND CHECK FOR END OF INPUT
BE EXIT ALL DONE LETS GO HOME
B READLOOP PROCESS NEXT RECORD OF INPUT
*
EOFRTN EQU *
* WTO 'EOFRTN CODE ENTERED',ROUTCDE=11
CLC CMDREC(80),SPACES
BE NOINPUT
MVC EOFIND(4),EOFCOND
B EXIT
NOTFOUND EQU *
*
L R5,PUTRTNAD
*
MVC MSGREC(80),NOENQFND
LA R1,MSGREC
MVC 22(18,R1),CMDREC
*
MVC 0(PUTMAC1L,R5),PUTMAC1
LA R4,MSGOUT
LA R3,MSGREC
*
LA R6,EXIT
O R6,HBITON
*
BSM R0,R5
*
B EXIT
BADDSN EQU *
WTO 'INPUT DSN NOT P102711. OR P102044. , TERMINATING!', X
ROUTCDE=11
B EXIT
*KK1-S
BADTST EQU *
WTO 'INPUT DSN NOT D102544. CHANGE PLEASE,TERMINATING!', X
ROUTCDE=11
B EXIT
*KK1-E
NOINPUT EQU *
WTO 'NO INPUT RECORDS FOUND, TERMINATING! ',ROUTCDE=11
B EXIT
GQERROR EQU *
WTO 'GQSCAN ERROR ',ROUTCDE=11
B EXIT
EXIT EQU *
*
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,CLOSLIST
LA R4,CMDIN
CLOSE ((R4)),MODE=31,MF=(E,(R3))
*
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,CLOSLIST
LA R4,MSGOUT
CLOSE ((R4)),MODE=31,MF=(E,(R3))
*
EXITNCLS EQU *
*
STORAGE RELEASE,LENGTH=GETMAC1L,ADDR=GETRTNAD
*
STORAGE RELEASE,LENGTH=EOFCODEL,ADDR=EOFRTNAD
*
STORAGE RELEASE,LENGTH=PUTMAC1L,ADDR=PUTRTNAD
*
STORAGE RELEASE,LENGTH=FOURMEGL,ADDR=GRSWRKAD
*
EXITSAVE EQU *
L R13,4(R11)
STORAGE RELEASE,ADDR=(R11),LENGTH=DSECT0L
*
EXITCODE EQU *
*
LM R14,R12,12(R13) RESTORE AND RETURN TO CALLER 00146
XR R15,R15 RETURN CODE OF ZERO
BSM 0,R14 00147
* 00148
*
DC CL8'TSOCAN '
DC CL8'V1R1M0 '
DC CL8'&SYSDATE'
DC CL8'&SYSTIME'
DC C'R.G.YOUNG '
CONID DC 1F'2'
EOFCOND DC X'FFFFFFFF'
HBITON DC X'80000000'
SPACES DC 80CL1' ' BLANKS USER TO INITIALIZE USERID
BLANKS DC CL8' ' BLANKS USER TO INITIALIZE USERID
*KK1-S
*SYSDNAME DC CL8'SYSB '
*
TESTFLAG DS CL1
*KK1-E
CMDPARMP DS 0CL82
CMDLNGTP DC 1H'44'
*MDSENDP DC CL80'SEND '' ENQ ON DSN '',USER=(SP133) '
CANSENDP DC CL80'CANCEL U= '
TENH DC 1H'10'
THRTYSIX DC 1F'36'
KGFDSN DC CL20'P102711. '
NMRDSN DC CL20'P102044. '
*KK1-S
TSTDSN DC CL20'D102544. '
HLQDM DC CL2'DM'
HLQDK DC CL2'DK'
VALLOW DC CL3'00 '
VALHGH DC CL3'99 '
*KK1-E
EXCLSV DC CL20'EXCLUSIVE '
SHR DC CL20'SHR '
NOTTSOTX DC CL80'NOT A TSO USER WILL NOT CANCEL '
NOENQFND DC CL80'NO ENQUEUE FOUND FOR '
MGCREL MGCRE MF=L
MGCREPL EQU *-MGCREL
CMDINTP DCB DDNAME=CMDIN,DSORG=PS,LRECL=80,MACRF=(GM),EODAD=EOFRTN
MSGOUTP DCB DDNAME=MSGOUT,DSORG=PS,MACRF=(PM),RECFM=FB,LRECL=80
OPENLIS OPEN (0),MF=L,MODE=31
CLOSLIS CLOSE (0),MF=L,MODE=31
OCL EQU *-OPENLIS
WTOCONST WTO TEXT=WTOTEXT,MF=L
WTOL EQU *-WTOCONST
TWENTY DC 1H'20'
EOFCODE BSM R0,R7
EOFCODEL EQU *-EOFCODE
GETMAC1 DS 0H
*
GET (R4),(R3)
BSM R0,R6 THIS IS WHERE WE RETURN ON NON EOF
*
GETMAC1L EQU *-GETMAC1
PUTMAC1 DS 0H
*
PUT (R4),(R3)
BSM R0,R6 THIS IS WHERE WE RETURN ON NON EOF
*
PUTMAC1L EQU *-PUTMAC1
FOURMEGL EQU 4196304
*
RNAMEL EQU 16
QNAME DC 1CL8'SYSDSN '
GQSCANC GQSCAN SCOPE=ALL,MF=L STEP/SYSTEM/SYSTEMS REQUEST
GQSCANL EQU *-GQSCANC
PADDING DC 100CL1' '
SPACE
LTORG
DCBD DSORG=PS,DEVD=DA
*
DSECT0 DSECT
SAVEAREA DS 18F SAVE AREA
GETRTNAD DS 1A GET RTN ADDR
PUTRTNAD DS 1A PUT RTN ADDR
EOFRTNAD DS 1A EOF RTN ADDR
GRSWRKAD DS 1A GRS WRK ADDR
RETCODE DS 1F RET CODE
RIBSIZE DS 1F
RIBESIZE DS 1F
TOKEN DS 1F CONTINUATION TOKEN
EOFIND DS 1F CONTINUATION TOKEN
THISSYSN DS CL8
THISUSER DS CL8
RNAME DS CL80
USERIDLS DS CL8 USERID FIELD
USERID DS CL8 USERID FIELD
JOBNAME DS CL8 JOBNAME
TYPE DS CL3 JOB/TSU/STC
MGCRELS MGCRE MF=L
CMDREC DS 5CL80 INPUT RECORD BUFFER
MSGREC DS 5CL80 INPUT RECORD BUFFER
CMDIN DCB DDNAME=CMDIN,DSORG=PS,LRECL=80,MACRF=(GM),EODAD=EOFRTN
MSGOUT DCB DDNAME=MSGOUT,DSORG=PS,LRECL=80,MACRF=(PM),RECFM=FB
CMDINL EQU *-CMDIN
OPENLIST OPEN (0),MF=L,MODE=31
CLOSLIST CLOSE (0),MF=L,MODE=31
WTOTEXT DS AL2
WTOTEXTT DS CL80
WTOWORK WTO TEXT=WTOTEXT,MF=L
GQSCANW GQSCAN SCOPE=ALL,MF=L STEP/SYSTEM/SYSTEMS REQUEST
CMDPARM DS 0CL82
CMDLNGTH DC 1H'44'
*MDSEND DC CL80'SEND '' ENQ ON DSN '',USER=(SP133) '
CANSEND DC CL80'CANCEL U= '
PADSTOR DS CL80
DSECT0L EQU *-DSECT0 DSECT LENGTH
*
ISGRIB
CVT DSECT=YES,LIST=NO COMMUNICATIONS VECTOR TABLE
IEFJSCVT , MVS JES COMM VECTOR TABLE
IHAASCB
IHAASXB
IHAPSA
IEFJESCT
NIC1SSVT
*
END
Joined: 26 Nov 2002 Posts: 12376 Topics: 75 Location: San Jose
Posted: Mon Apr 04, 2005 1:05 pm Post subject:
Here is a detailed description of the error D22. and the reason code is 8. So correct that error.
Code:
D22
Explanation: A program issued the MGCR or MGCRE macro (SVC 34) or an
operator issued a command. While processing the request, the system
detected an error. A hexadecimal reason code in register 15 explains the
error:
Code Explanation
04 The request specified both CMDFLAG=SUBSYS and CMDFLAG=COMMTASK.
These parameter values are mutually exclusive.
08 On the TEXT parameter, the request specified a length field that
is either greater than 126 characters or zero.
0C The request parameter list did not include the control block
acronym MGCR or MGCRE.
10 The request required the CONSID or CONSNAME parameter, but
neither was specified.
14 The request specified both the CONSNAME and CONSID parameters.
These are mutually exclusive.
18 The request specified a CONSNAME parameter value that does not
represent a valid console.
1C The request specified a CONSID parameter value that is out the
defined range for a multiple console support (MCS) console.
20 The program is not authorized to issue the MGCR or MGCRE macro.
The program must be in supervisor state and PSW key 0-7.
24 Recovery could not be established while processing a command,
whether issued by the operator or issued using the MGCR or MGCRE
macros.
28 Parameters specified on the MGCR or MGCRE cannot be accessed
because they are specified incorrectly.
2C The command abended because the security product took longer
than 30 seconds to process the command authorization (RACROUTE).
It was causing a wait in the Console main task, which cannot be
tolerated.
System Action: If reason code X'24' was issued, the system does not
process the command.
If reason code X'2C' was issued, the command will be abended to fail the
command.
For all other reason codes, the system does not process the MGCR or MGCRE
macro.
System Programmer Response: If reason code X'24' was issued, ask the
operator to issue the command again. If the problem persists, search
problem reporting data bases for a fix for the problem. If no fix exists,
contact the IBM Support Center.
If reason code X'2C' was issued, check the security product's database to
determine why the RACROUTE is taking longer than usual.
For all other reason codes, determine which module issued the MGCR or
MGCRE macro:
o If the module is installation-provided code, correct the MGCR or MGCRE
macro. Recompile and run the job step again.
o If the module is an IBM module, search problem reporting data bases
for a fix for the problem. If no fix exists, contact the component
group for the module at the IBM Support Center.
Posted: Mon Apr 04, 2005 1:25 pm Post subject: The length for TEXT in MACRO MGCRE
Hi Kolsu,
But here the vale in TEXT is pointed by R3. And R3 is loaded from
CMDPARM. Here in code CMDPARM is declared as.
CMDPARM DS 0CL82
This program was working fine earlier.
I had made some code change in the code with tag KK1. And when tested in production this is giving is problem. But i really do not see any relation with the code change that i have made with this abend. I am surprised that it is abending at some other point ( May be i am missing some thing as i am nor that comfortable with assembler ). Also i cannot test this in my test environment as i have some authority issue and if i test i will get a user abend U001. So we had tested in production environment.
Also when i loooked the PSW at that time ( given below for reference ) :-
DATA AT PSW 060BCD82 - C25718F0 0A0D181A 1FFF43F0
AR/GR 0: 80B85B3E/00000008 1: 00000000/84D22000
2: 00000000/008FD620 3: 00000000/00000000
4: 00000000/008DDB60 5: 00000000/008FD5C0
6: 00000000/00000000 7: 00000000/008E5C82
8: 00000000/008E5484 9: 00000000/00000040
A: 00000000/008E5340 B: 00000000/860BC03E
C: 00000000/060BD03D D: 00000000/000068B0
E: 00000000/00FED600 F: 00000000/00000008
The base reg is 12 and it has address 00000000/060BD03D . But the PSW has 060BCD82. This is higher value than the Reg 12 !!! I am surprised now. Also in JESYSMSG it given 'NO ACTIVE MODULE FOUND'. So i am surprised and confused. Is that the Macro not getting loaded. Me clueless.
Currently CMDPARMP will not be aligned on a boundary because of the testflag definition and as you have asked for a half word alignment for
CMDLNGTP the system will generate a pad character for you. So at the moment you are probably using a length field of zero.
This is mostly guess work on my part so if I am confusing the issue I apologise in advance...... If I am right you owe me a beer
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum