Instructions for addressing problem noted in usage note 2281 An ASRD abend may occur in a CICS application at TS 3.2 and is explained by the IBM technote found at this link: http://www-1.ibm.com/support/docview.wss?uid=swg21264616 To avoid the problem, modify the L$UCENV source module found in the data set prefix.MACLIBA to call DFHKERN as shown in the technote. Note that the program must be running in AMODE 31 to use this macro. The information below can be used as a reference for the modification. EDIT prefix.MACLIBA(L$UCENV) - 01.37 Changes are shown Command ===> comp next x Scroll ===> CSR 005400 DFHCSAD TYPE=DSECT 5.5 .OAAAA DFHKERN TYPE=PROCESSOWN 005500 DROP R13 5.5 005600 CONDCOPY DFHPCTDS 5.5 005700 PCTCBAR EQU R0 5.0 005800 DROP PCTCBAR 5.5 005900 DFHTCA CICSYST=YES 5.0 - - - - - - - - - - - - - - - - - - - 17 Line(s) not Displayed 007700 .* - Find the PCT entry from the system TCA. 5.5 007800 .* - Abend 1231 if the PCT has no TWA defined. 6.0 007900 .* 5.5 008000 DFHCSAD TYPE=LOCATE,REG=R12 Find the CSA 5.0 008100 USING DFHCSADS,R12 Establish CSA addressability 5.5 ====== L R4,CSACDTA Point to the user TCA 5.5 .OAAAB * .OAAAC * L R4,CSACDTA Point to the user TCA 5.5 .OAAAD * .OAAAE DFHKERN FUNCTION=INQUIRE_TASK,TCAADDRESS=R4,STACK_AVAIL=NO 008300 USING DFHTCADS,R4 Establish user TCA addressability 5.5 008400 L R3,TCASYAA Point to the system TCA 5.5 008500 CLI CSACIREL,X'32' Pre-release 3.2 system? 5.5 008600 BL PREREL32 Branch if pre-3.2 system 5.5 008700 BE REL32 Branch if 3.2 system 5.5 - - - - - - - - - - - - - - - - - - - 46 Line(s) not Displayed ****** **************************** Bottom of Data **************************** The "PROCESSOWN" line was inserted to generate the DSECT, the reference to CSADTA removed and replaced with the call to "INQUIRE". After backing up your data sets and modifying L$UCENV, assemble it with the assembly parm: SYSPARM(CICS). Name the module L$UPREPH, create an alias called L$UPREP, and replace these members in prefix.CICSOBJ. To be complete, it should also be linked into prefix.CICSLIB with the same name and alias. While the changes are made to L$UCENV from the data set prefix.MACLIBA, L$UPREP from within prefix.SOURCE is the code/program that you will assemble. (You should probably do all of this first in copied datasets so as not to damage installed files.) Below is the example. //job card info... /*JOBPARM FETCH //ASM EXEC PGM=ASMA90,PARM='OBJECT,SYSPARM(CICS)' //SYSPRINT DD SYSOUT=* //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.AMODGEN,DISP=SHR // DD DSN=sascprefix.MACLIBA,DISP=SHR // DD DSN=SSD.CICSTS31.CICS.SDFHMAC,DISP=SHR //SYSTERM DD SYSOUT=* //SYSPUNCH DD DUMMY //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSLIN DD DSN=your.obj(L$UPREPH),DISP=SHR //SYSIN DD DSN=your.asm.source(L$UPREP),DISP=SHR //LINK EXEC PGM=IEWL,PARM='LIST,MAP,RENT,REFR,NCAL' //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSLIB DD DSN=SSD.CICSTS31.CICS.SDFHLOAD,DISP=SHR //SYSLMOD DD DSN=your.load,DISP=SHR //SYSLIN DD DSN=your.obj(L$UPREPH),DISP=SHR // DD DDNAME=SYSIN //SYSIN DD * MODE AMODE(31),RMODE(ANY) ALIAS L$UPREP NAME L$UPREPH(R) /* //ALIAS EXEC PGM=IEBUPDTE,PARM='MOD' //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=your.obj,DISP=OLD //SYSUT2 DD DSN=your.obj,DISP=MOD //SYSIN DD * ./ REPRO NAME=L$UPREPH ./ ALIAS NAME=L$UPREP /* //