Enclosed in this file are the following: Pre-requisite zaps Z7502256 and Z7502281 Zap Z7502296 Revised prefix.MACLIBA(L$UCENV) Suggested JCL for re-assembly of prefix.SOURCE(L$UPREP) Apply the pre-requisite zaps Z7502256 and Z7502281 followed by zap Z7502296 Save the existing prefix.MACLIBA(L$UCENV) under a different name and replace it with the revised L$UCENV at the end of this file. Use the suggested JCL to re-assemble prefix.SOURCE(L$UPREP). * NAME: Z7502256 PRODUCT: SASC CATEGORY: RECO SYSTEM: MVS * DATE: 08JUL06 STATUS: DZ+UT USAGE-ID: CICS-C2256 * * CICS ASRA abend under CICS TS 3.1 * * NOTE: APPLY TO SASC.CICSOBJ (CICS RESIDENT LIBRAY IN OBJECT * FORMAT), SASC.CICSLIB (CICS RESIDENT LIBRARY IN LOAD * MODULE FORMAT), SASC.CICSLOAD (CICS TRANSIENT RUN-TIME * LIBRARY IN LOAD MODULE FORMAT), AND SASC.CICS.ARESOBJ * (CICS ALL-RESIDENT LIBRARY IN OBJECT FORMAT) USING THE * THE APPLYZAP UTILITY. * THE AFFECTED PROGRAM SHOULD BE RELINKED. * END NAME L$CALNKH L$CALNKH CICSLOAD CICSARES CHECKSUM VER 0050 4700,5510 VER 0092 4700,5510 VER 0510 5510,5512 VER 0514 5514,5516 VER 0518 5518,551A VER 051C 551C,551E VER 0520 5520,5522 VER 0524 5524,5526 VER 0528 5528,552A VER 052C 552C,552E * REP 0050 47F0,5510 REP 0092 47F0,5520 REP 0510 9564,609F REP 0514 4740,5060 REP 0518 58A0,C0D4 REP 051C 47F0,5060 REP 0520 9564,609F REP 0524 4740,53BA REP 0528 58A0,C0D4 REP 052C 47F0,53BA CHECKSUM 6CD53078 IDRDATA Z7502256 NAME L$CAID L$CAIDH CICSOBJ CICSLIB VER 01A8 4700,F0DE VER 0256 F0DE,F0E0 VER 025A F0E2,F0E4 VER 025E F0E6,F0E8 VER 0262 F0EA,F0EC * REP 01A8 47F0,F0DE REP 0256 9564,B09F REP 025A 4740,F040 REP 025E 5890,A0D4 REP 0262 47F0,F040 CHECKSUM E824D4FE IDRDATA Z7502256 NAME L$CHNDL L$CHNDLH CICSOBJ CICSLIB VER 01A8 4700,F0E8 VER 0260 F0E8,F0EA VER 0264 F0EC,F0EE VER 0268 F0F0,F0F2 VER 026C F0F4,F0F6 * REP 01A8 47F0,F0E8 REP 0260 9564,B09F REP 0264 4740,F040 REP 0268 5890,A0D4 REP 026C 47F0,F040 CHECKSUM E87ED558 IDRDATA Z7502256 * NAME: Z7502281 PRODUCT: SASC CATEGORY: RECO SYSTEM: MVS * DATE: 24JUN08 STATUS: DZ+UT USAGE-ID: CICS-C2281 * * ASRD ABEND using CICS TS 3.2 or later * * NOTE: APPLY TO SASC.CICSOBJ (CICS RESIDENT LIBRAY IN OBJECT * FORMAT), AND SASC.CICSLIB (CICS RESIDENT LIBRARY IN * LOAD MODULE FORMAT) USING THE APPLYZAP UTILITY. THE * AFFECTED PROGRAM SHOULD BE RELINKED. * * NOTE: APPLY TO SASC.CICSLOAD (CICS TRANSIENT RUN-TIME LIBRARY * IN LOAD MODULE FORMAT), AND SASC.CICS.ARESOBJ (CICS * ALL-RESIDENT LIBRARY IN OBJECT FORMAT) USING THE * APPLYZAP UTILITY. * NOTE: RELINK OR ZAP ANY ALL-RESIDENT PROGRAMS WHICH INCLUDE * THIS MODULE. * * END NAME L$CAID L$CAIDH CICSOBJ CICSLIB CHECKSUM VER 0190 58A0,B04C VER 0266 F0EE,F0F0 VER 026A F0F2,F0F4 VER 026E F0F6,F0F8 VER 0272 F0FA,F0FC VER 0276 F0FE,F100 VER 027A F102,F104 VER 027E F106,F108 VER 0282 F10A,F10C * REP 0190 47F0,F0EE REP 0266 58A0,021C REP 026A 58A0,A0D0 REP 026E 58A0,A014 REP 0272 4AA0,A006 REP 0276 58A0,A018 REP 027A 58A0,A010 REP 027E 58A0,A028 REP 0282 47F0,F01C CHECKSUM BBA11A28 IDRDATA Z7502281 NAME L$CHNDL L$CHNDLH CICSOBJ CICSLIB VER 0190 58A0,B04C VER 0270 F0F8,F0FA VER 0274 F0FC,F0FE VER 0278 F100,F102 VER 027C F104,F106 VER 0280 F108,F10A VER 0284 F10C,F10E VER 0288 F110,F112 VER 028C F114,F116 * REP 0190 47F0,F0F8 REP 0270 58A0,021C REP 0274 58A0,A0D0 REP 0278 58A0,A014 REP 027C 4AA0,A006 REP 0280 58A0,A018 REP 0284 58A0,A010 REP 0288 58A0,A028 REP 028C 47F0,F01C CHECKSUM BC411AD2 IDRDATA Z7502281 NAME L$CALNKH L$CALNKH CICSLOAD VER 0026 58C0,604C VER 0530 5530,5532 VER 0534 5534,5536 VER 0538 5538,553A VER 053C 553C,553E VER 0540 5540,5542 VER 0544 5544,5546 VER 0548 5548,554A VER 054C 554C,554E * REP 0026 47F0,5530 REP 0530 58C0,021C REP 0534 58C0,C0D0 REP 0538 58C0,C014 REP 053C 4AC0,C006 REP 0540 58C0,C018 REP 0544 58C0,C010 REP 0548 58C0,C028 REP 054C 47F0,502A CHECKSUM 02F1760E IDRDATA Z7502281 NAME L$CDMGR L$CDMGRH CICSLOAD VER 0A40 58C0,604C VER 0EA6 9552,9554 VER 0EAA 9556,9558 VER 0EAE 955A,955C VER 0EB2 955E,9560 VER 0EB6 9562,9564 VER 0EBA 9566,9568 VER 0EBE 956A,956C VER 0EC2 956E,9570 * REP 0A40 47F0,9552 REP 0EA6 58C0,021C REP 0EAA 58C0,C0D0 REP 0EAE 58C0,C014 REP 0EB2 4AC0,C006 REP 0EB6 58C0,C018 REP 0EBA 58C0,C010 REP 0EBE 58C0,C028 REP 0EC2 47F0,90F0 CHECKSUM 59CE4DD0 IDRDATA Z7502281 NAME L$CALNKH L$CALNKH CICSARES VER 0026 58C0,604C VER 0530 5530,5532 VER 0534 5534,5536 VER 0538 5538,553A VER 053C 553C,553E VER 0540 5540,5542 VER 0544 5544,5546 VER 0548 5548,554A VER 054C 554C,554E * REP 0026 47F0,5530 REP 0530 58C0,021C REP 0534 58C0,C0D0 REP 0538 58C0,C014 REP 053C 4AC0,C006 REP 0540 58C0,C018 REP 0544 58C0,C010 REP 0548 58C0,C028 REP 054C 47F0,502A CHECKSUM 02F1760E IDRDATA Z7502281 NAME L$CDMGRH L$CDMGRH CICSARES VER 0A40 58C0,604C VER 0EA6 9552,9554 VER 0EAA 9556,9558 VER 0EAE 955A,955C VER 0EB2 955E,9560 VER 0EB6 9562,9564 VER 0EBA 9566,9568 VER 0EBE 956A,956C VER 0EC2 956E,9570 * REP 0A40 47F0,9552 REP 0EA6 58C0,021C REP 0EAA 58C0,C0D0 REP 0EAE 58C0,C014 REP 0EB2 4AC0,C006 REP 0EB6 58C0,C018 REP 0EBA 58C0,C010 REP 0EBE 58C0,C028 REP 0EC2 47F0,90F0 CHECKSUM 59CE4DD0 IDRDATA Z7502281 * NAME: Z7502296 PRODUCT: SASC CATEGORY: RECO SYSTEM: MVS * DATE: 23APR12 STATUS: DZ+UT USAGE-ID: CICS-C2296 * * CICS ASRA abend under CICS TS 4.2 * * NOTE: APPLY TO SASC.CICSOBJ (CICS RESIDENT LIBRAY IN OBJECT * FORMAT), SASC.CICSLIB (CICS RESIDENT LIBRARY IN LOAD * MODULE FORMAT), SASC.CICSLOAD (CICS TRANSIENT RUN-TIME * LIBRARY IN LOAD MODULE FORMAT), AND SASC.CICS.ARESOBJ * (CICS ALL-RESIDENT LIBRARY IN OBJECT FORMAT) USING THE * THE APPLYZAP UTILITY. * THE AFFECTED PROGRAM SHOULD BE RELINKED. * END NAME L$CALNKH L$CALNKH CICSLOAD CHECKSUM VER 051C 47F0,5060 VER 052C 47F0,53BA VER 0548 58C0,C028 VER 054C 47F0,502A VER 0550 5550,5552 VER 0554 5554,5556 VER 0558 5558,555A VER 055C 555C,555E VER 0560 5560,5562 VER 0564 5564,5566 VER 0568 5568,556A VER 056C 556C,556E VER 0570 5570,5572 VER 0574 5574,5576 VER 0578 5578,557A VER 057C 557C,557E REP 051C 47F0,5560 REP 022C 47F0,5570 REP 0548 9567,609F REP 054C 4740,5558 REP 0550 58C0,C0AC REP 0554 47F0,502A REP 0558 58C0,C028 REP 055C 47F0,502A REP 0560 9567,609F REP 0564 4740,5060 REP 0568 58A0,C0D8 REP 056C 47F0,5060 REP 0570 9567,609F REP 0574 4740,53BA REP 0578 58A0,C0D8 REP 057C 47F0,53BA IDRDATA Z7502296 NAME L$CDMGR L$CDMGRH CICSLOAD VER 0EBE 58C0,C028 VER 0EC2 47F0,90F0 VER 0EC6 9572,9574 VER 0ECA 9576,9578 VER 0ECE 957A,957C VER 0ED2 957E,9580 REP 0EBE 9567,609F REP 0EC2 4740,957A REP 0EC6 58C0,C0AC REP 0ECA 47F0,90F0 REP 0ECE 58C0,C028 REP 0ED2 47F0,90F0 CHECKSUM 1D2A2CFE IDRDATA Z7502296 NAME L$CALNKH L$CALNKH CICSARES CHECKSUM VER 051C 47F0,5060 VER 052C 47F0,53BA VER 0548 58C0,C028 VER 054C 47F0,502A VER 0550 5550,5552 VER 0554 5554,5556 VER 0558 5558,555A VER 055C 555C,555E VER 0560 5560,5562 VER 0564 5564,5566 VER 0568 5568,556A VER 056C 556C,556E VER 0570 5570,5572 VER 0574 5574,5576 VER 0578 5578,557A VER 057C 557C,557E REP 051C 47F0,5560 REP 022C 47F0,5570 REP 0548 9567,609F REP 054C 4740,5558 REP 0550 58C0,C0AC REP 0554 47F0,502A REP 0558 58C0,C028 REP 055C 47F0,502A REP 0560 9567,609F REP 0564 4740,5060 REP 0568 58A0,C0D8 REP 056C 47F0,5060 REP 0570 9567,609F REP 0574 4740,53BA REP 0578 58A0,C0D8 REP 057C 47F0,53BA IDRDATA Z7502296 NAME L$CDMGRH L$CDMGRH CICSARES VER 0EBE 58C0,C028 VER 0EC2 47F0,90F0 VER 0EC6 9572,9574 VER 0ECA 9576,9578 VER 0ECE 957A,957C VER 0ED2 957E,9580 REP 0EBE 9567,609F REP 0EC2 4740,957A REP 0EC6 58C0,C0AC REP 0ECA 47F0,90F0 REP 0ECE 58C0,C028 REP 0ED2 47F0,90F0 CHECKSUM 6C3B56D4 IDRDATA Z7502296 NAME L$CAID L$CAIDH CICSOBJ CICSLIB CHECKSUM VER 0262 47F0,F040 VER 027E 58A0,A028 VER 0282 47F0,F01C VER 0286 F10E,F110 VER 028A F112,F114 VER 028E F116,F118 VER 0292 F11A,F11C VER 0296 F11E,F120 VER 029A F122,F124 VER 029E F126,F128 VER 02A2 F12A,F12C REP 0262 47F0,F11E REP 027E 9567,B09F REP 0282 4740,F116 REP 0286 58A0,A0AC REP 028A 47F0,F01C REP 028E 58A0,A028 REP 0292 47F0,F01C REP 0296 9567,B09F REP 029A 4740,F040 REP 029E 5890,A0D8 REP 02A2 47F0,F040 IDRDATA Z7502296 NAME L$CHNDL L$CHNDLH CICSOBJ CICSLIB VER 026C 47F0,F040 VER 0288 58A0,A028 VER 028C 47F0,F01C VER 0290 F118,F11A VER 0294 F11C,F11E VER 0298 F120,F122 VER 029C F124,F126 VER 02A0 F128,F12A VER 02A4 F12C,F12E VER 02A8 F130,F132 VER 02AC F134,F136 REP 026C 47F0,F128 REP 0288 9567,B09F REP 028C 4740,F120 REP 0290 58A0,A0AC REP 0294 47F0,F01C REP 0298 58A0,A028 REP 029C 47F0,F0C1 REP 02A0 9567,B09F REP 02A4 4740,F040 REP 02A8 5890,A0D8 REP 02AC 47F0,F040 CHECKSUM 9EFF5A6F IDRDATA Z7502296 //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=your.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=your.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 /* // MACRO &L L$UCENV .********************************************************************** .* COPYRIGHT (C) 1991 BY SAS INSTITUTE INC. ALL RIGHTS RESERVED. * .********************************************************************** .* *********************************************************************** * This macro is used by the L$UPREP routine to locate the C * * Runtime Anchor Block. It may be replaced by the user to * * use another method to locate it. This sample simply * AIF ('&SYSPARM' EQ 'CICS').CICS1 5.0 AIF ('&SYSPARM' EQ 'DOSCICS').CICS1 5.0 AIF ('&SYSPARM' EQ 'CICSTRUE').CICS2 6.0 * uses an external symbol (L$UCENV) to address it, thereby * * rendering library-independent programs non-reentrant. * * If the user wishes to use C in a non-library environment, * * and a word of storage is available somehwere to contain * * the CRAB pointer (e.g., in a control block belonging * * to a calling environment), this macro can be modified * * to provide a fully reentrant interface. * AGO .JCICS1 5.0 .CICS1 ANOP 5.0 * assumes that a Transaction Work Area is defined and the 5.0 * CRAB pointer can be saved in the first word of the TWA. 5.0 AGO .JCICS1 6.0 .CICS2 ANOP 6.0 * uses the TRUE local work area to contain the CRAB pointer. 6.0 .JCICS1 ANOP 5.0 *********************************************************************** SPACE AIF ('&SYSPARM' EQ 'CICS').CICS3 5.0 AIF ('&SYSPARM' EQ 'DOSCICS').CICS3 5.0 AIF ('&SYSPARM' EQ 'CICSTRUE').CICS4 6.0 L$UCENV CSECT , START C ENVIRONMENT PTR CSECT 3.1 L$UCENV RMODE ANY 4.5 L$UCENV AMODE ANY 4.5 DC A(0) INITIALLY, NOTHING IS THERE &SYSECT CSECT , RESUME CODE CSECT &L L R12,=A(L$UCENV) FIND C ENVIRONMENT POINTER 3.1 MEXIT 5.0 .CICS3 ANOP 5.0 PUSH PRINT 5.0 PUSH USING Preserve L$UPREP addressability 5.0 PRINT OFF IKJTCB; DFHAFCB; DFHAICB; + COPY DFHCSADS; DFHPCTDS; DFHTCADS 5.0 AIF ('&SYSPARM' EQ 'DOSCICS').DOS1 5.0 IKJTCB LIST=NO 5.0 AGO .OS1 5.0 .DOS1 ANOP 5.0 MAPCOMR 5.0 .OS1 ANOP 5.0 DFHAFCD TYPE=DSECT 5.0 DFHAICB TYPE=DSECT 5.0 DFHCSAD TYPE=DSECT 5.5 DFHKERN TYPE=PROCESSOWN 7.5 DROP R13 5.5 * CONDCOPY DFHPCTDS 5.5 PCTCBAR EQU R0 5.0 DROP PCTCBAR 5.5 DFHTCA CICSYST=YES 5.0 DROP TCACBAR 5.5 POP PRINT 5.0 &SYSECT CSECT , RESUME CODE CSECT 5.0 &L DS 0H 5.0 *********************************************************************** * This code will ABEND 1231 if there is no TWA of the 5.0 * minimum size required. 5.0 *********************************************************************** .* 5.5 .* This code got real ugly when IBM moved TCATCPC for 5.5 .* release 3.2 and removed TWACCOBA for release 3.3. 5.5 .* The logic goes like this: 5.5 .* - Find the CSA. 5.5 .* - Find the user TCA from the CSA. 5.5 .* - Find the system TCA from the user TCA. 5.5 .* - Find the TWA address from the User TCA. 5.5 .* The C Environment pointer (if any) is stored there. 5.5 .* - Find the PCT entry from the system TCA. 5.5 .* - Abend 1231 if the PCT has no TWA defined. 6.0 .* 5.5 DFHCSAD TYPE=LOCATE,REG=R12 Find the CSA 5.0 USING DFHCSADS,R12 Establish CSA addressability 5.5 CLI CSACIREL,X'67' Pre-release 4.2 system? 7.5 BL PRERL42 * DFHKERN FUNCTION=INQUIRE_TASK,TCAADDRESS=R4, 7.5+ STACK_AVAIL=NO 7.5 L R4,X'21C' Address current TCB L R4,X'D0'(,R4) ADDRESS TCB EXTN L R4,X'14'(,R4) ADDRESS AFCB AH R4,6(,R4) bump past vector L R4,24(,R4) past fcb prefix to A(KTCB) + in trailer L R4,16(,R4) to TASN L R4,X'AC'(,R4) to TCA B GOTCSA PRERL42 DC 0H'0' * DFHKERN FUNCTION=INQUIRE_TASK,TCAADDRESS=R4, 7.5+ STACK_AVAIL=NO 7.5 L R4,X'21C' Address current TCB L R4,X'D0'(,R4) ADDRESS TCB EXTN L R4,X'14'(,R4) ADDRESS AFCB AH R4,6(,R4) bump past vector L R4,24(,R4) past fcb prefix to A(KTCB) + in trailer L R4,16(,R4) to TASN L R4,40(,R4) to TCA GOTCSA DC 0H'0' USING DFHTCADS,R4 Establish user TCA addressability 5.5 L R3,TCASYAA Point to the system TCA 5.5 CLI CSACIREL,X'32' Pre-release 3.2 system? 5.5 BL PREREL32 Branch if pre-3.2 system 5.5 BE REL32 Branch if 3.2 system 5.5 L R12,X'EC'(,R4) (tcatwaad) Find the TWA address 5.5 CLI CSACIREL,X'67' Pre-release 4.2 system? 5.5 BL PREREL42 Branch if pre-4.2 system 7.5 CLC =F'4',X'F0'(R4) TWA large enough to hold crab ptr?7.5 BH TWABAD No. Return error. 7.5 B TWAOK Yes. We're done. 7.5 PREREL42 DC 0H'0' 7.5 L R2,X'1C'(,R3) (tcatcpc) Point to PCT entry 5.5 B CHECKTWA See if we have a TWA 5.5 REL32 LA R12,X'F0'(,R4) (twacoba) Find the TWA address 5.5 L R2,X'1C'(,R3) (tcatcpc) Point to PCT entry 5.5 B CHECKTWA See if we have a TWA 5.5 PREREL32 LA R12,X'100'(,R4) (twacoba) Find the TWA address 5.5 L R2,X'14'(,R3) (tcatcpc) Point to PCT entry 5.5 N R2,=X'00FFFFFF' Clear the top byte 5.0 * USING DFHPCTDS,R2 Establish PCT addressability 5.5 CHECKTWA CLC 18(2,R2),=H'4' Could the TWA point to a CRAB? 5.0 BNL TWAOK Branch if so 6.0 TWABAD DC 0H'0' 7.5 LA R1,ABNDPLST Point to EXEC CICS ABEND plist 6.0 L R15,=V(DFHEI1) Point to the CICS cmd level stub 6.0 BALR R14,R15 Issue the Abend 6.0 SPACE ABNDPLST DC A(CMDARG) CICS command argument string 6.0 DC A(ABCODE+X'80000000') Pointer to Abend code 6.0 CMDARG DC X'0E0C80004800006000' EXEC CICS ABEND ABCODE command 6.0 ABCODE DC C'1231' No TWA defined Abend code 6.0 SPACE TWAOK DS 0H 6.0 POP USING Restore normal addressability 5.0 * 5.5 * At this point R12 points to the TWA 5.5 * 5.5 MEXIT 6.0 .CICS4 ANOP 6.0 * 6.0 * For a CICS TRUE, register 1 points to the user 6.0 * exit parameter list. The local work area associated 6.0 * with this exit is used to anchor the Crab; it is 6.0 * initialized to zero by CICS. 6.0 * 6.0 PUSH PRINT 6.0 PUSH USING Preserve L$UPREP addressability 6.0 PRINT OFF DFHUEXIT TYPE=RM 6.0 DFHUEXIT TYPE=RM MAP USER-EXIT DSECT'S 6.0 POP PRINT 6.0 &SYSECT CSECT , RESUME CODE CSECT 6.0 &L DS 0H 6.0 USING DFHUEPAR,R1 Address the user exit parm list 6.0 L R12,UEPTAA Point R12 at the local work area 6.0 DROP R1 Drop parm list addressability 6.0 MEND