For SYSTEM 2000 Version: 12.1
Problem Status: ZD -- R12.1 FFD3
Description of Problem:
WITH BUG FIX 4870 APPLIED, SOME ERROR SITUATIONS CAUSE A 301 ABEND IN CICS ENVIRONMENTS DUE TO MULTIPLE TASKS USING THE SAME ABEND HANDLER'S URB.
Note: Please send email to s2k@sas.com telling us which problem fixes you have downloaded so we can keep track of the fixes at your site in case questions or problems arise.
Top of Zap Deck:
* IBM R12.1 BUG 4871 MVS
*
* THIS BUG FIX WILL ALLOW THE USE OF AN INTERNAL URB DURING ABEND
* HANDLING IN SCFTERM SO THAT MULTIPLE TASKS WILL NOT BE TRYING TO
* USE THE ABEND HANDLER'S URB. MULTIPLE USE OF THAT URB CAN CAUSE
* A 301 ABEND IN A CICS ENVIRONMENT.
*
* THERE IS ALSO A FIX INCLUDED WHICH WILL CHANGE A FLAG SET FROM
* #URBWAIT TO URBWAIT (X'80' TO X'08'). THIS BUG WAS INTRODUCED
* IN BUG FIX 4844 AND IS HEREBY EMENDED. BUG FIX 4844 IS REQUIRED
* FOR THIS FIX TO WORK PROPERLY.
*
./ CHANGE NAME=SCFTERM
* *21* 24MAR97 GOH B4871 ALLOW FOR USING ALTERNATE URB IN ABEND CASE 00026860
* FIX URBWAIT BIT SETS FROM B4844 00026865
R14SAVE DS F *21* 00047010
DS 0D *21* 00052010
INTURB DS CL4688 *21* 00052020
TM URBFLAG1,X'01' IN USE ? *21* 00179010
BZ TERM0083 NO. USE IT *21* 00179020
BAL R14,TERMIURB YES. USE THE INTERNAL URB*21* 00179030
TERM0083 EQU * *21* 00179040
OI URBFLAG1,X'01' SET URB IN USE *21* 00179050
OI URBFLAG1,URBWAIT TURN ON WAIT FLAG *21* 00258010
NI URBFLAG1,X'FF'-URBWAIT TURN OFF WAIT FLAG *21* 00270010
TM URBFLAG1,X'01' IN USE ? *21* 00361010
BZ TERM499A NO. USE IT *21* 00361020
BAL R14,TERMIURB YES. USE INTERNAL URB *21* 00361030
TERM499A EQU * *21* 00361040
OI URBFLAG1,X'01' SET URB IN USE *21* 00361050
NI URBFLAG1,X'FF'-X'01' TURN OFF IN USE FLAG *21* 00386010
********************************************************************21* 00394010
* *21* 00394020
* TERMIURB - THE ABEND HANDLER URB IS IN USE BY SOMEONE ELSE, SO *21* 00394030
* WE WILL USE THE URB DEFINED IN THE WORKING STORAGE *21* 00394040
* AREA INSTEAD. *21* 00394050
* *21* 00394060
* ON ENTRY, R8 POINTS TO THE ABEND HANDLER'S URB *21* 00394070
* *21* 00394080
********************************************************************21* 00394090
SPACE 00394100
TERMIURB EQU * *21* 00394110
ST R14,R14SAVE SAVE RETURN REGISTER *21* 00394120
LH R14,=AL2(L'INTURB) LENGTH OF URB *21* 00394130
LA R15,INTURB ADDRESS WS URB *21* 00394140
LA R1,256 MAX MOVE LENGTH *21* 00394150
IURBMVLP EQU * *21* 00394160
CR R14,R1 MORE THAN MAX MOVE ? *21* 00394170
BL IURBLSTM NO. DO LAST MOVE *21* 00394180
MVC 0(256,R15),0(R8) DO THE MOVE *21* 00394190
A R15,=F'256' BUMP TO POINTER *21* 00394200
A R8,=F'256' BUMP FROM POINTER *21* 00394210
S R14,=F'256' DECREMENT TOTAL LENGTH *21* 00394220
B IURBMVLP LOOP THROUGH MOVE *21* 00394230
IURBLSTM EQU * *21* 00394240
BCTR R14,0 DECREMENT FOR EXECUTE *21* 00394250
EX R14,URBMOVE LAST MOVE *21* 00394260
LA R8,INTURB ADDRESS URB *21* 00394270
LA R15,URBNLBUF-DURB(R8) BUFFER ADDRESS *21* 00394280
ST R15,URBOUT-DURB(R8) SET URBOUT *21* 00394290
ST R15,URBNLBFA-DURB(R8) SET BUFFER ADDRESS *21* 00394300
LA R15,URBECB-DURB(R8) ECB ADDRESS *21* 00394310
ST R15,URBOPCOD-DURB(R8) SAVE IT *21* 00394320
L R14,R14SAVE RESTORE RETURN REGISTER *21* 00394340
BR R14 RETURN TO CALLER *21* 00394350
SPACE 2 00394360
URBMOVE MVC 0(0,R15),0(R8) *21* 00394370
EJECT 00394380
*USE THE WORKING STORAGE URB TO ELIMINATE *21* 00430010
*THE POSSIBILITY OF A SYSTEM 301 ABEND. *21* 00430020
BAL R14,TERMIURB YES. USE INTERNAL URB *21* 00430030
TERM8055 EQU * *21* 00430040
OI URBFLAG1,X'01' SET URB IN USE *21* 00430050
NI URBFLAG1,X'FF'-X'01' TURN OFF IN USE BIT *21* 00471010
NI URBFLAG1,X'FF'-X'01' TURN OFF IN USE BIT *21* 00509010
End of Zap Deck