For SYSTEM 2000 Version: 12.0
Problem Status: ZC (Zap Coded) -- Fix has received limited testing
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.0 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* 30MAY97 GOH B4871 ALLOW FOR USING ALTERNATE URB IN ABEND CASE 00026860 * FIX URBWAIT BIT SETS FROM B4844 00026865 R14SAVE DS F *21* 00037010 DS 0D *21* 00041020 INTURB DS CL4688 *21* 00041030 TM URBFLAG1,X'01' IN USE ? *21* 00149010 BZ TERM0083 NO. USE IT *21* 00149020 BAL R14,TERMIURB YES. USE THE INTERNAL URB*21* 00149030 TERM0083 EQU * *21* 00149040 OI URBFLAG1,X'01' SET URB IN USE *21* 00149050 OI URBFLAG1,URBWAIT TURN ON WAIT FLAG *21* 00226010 NI URBFLAG1,X'FF'-URBWAIT TURN OFF WAIT FLAG *21* 00238010 TM URBFLAG1,X'01' IN USE ? *21* 00311010 BZ TERM499A NO. USE IT *21* 00311020 BAL R14,TERMIURB YES. USE INTERNAL URB *21* 00311030 TERM499A EQU * *21* 00311040 OI URBFLAG1,X'01' SET URB IN USE *21* 00311050 NI URBFLAG1,X'FF'-X'01' TURN OFF IN USE FLAG *21* 00336010 ********************************************************************21* 00343010 * *21* 00343020 * TERMIURB - THE ABEND HANDLER URB IS IN USE BY SOMEONE ELSE, SO *21* 00343030 * WE WILL USE THE URB DEFINED IN THE WORKING STORAGE *21* 00343040 * AREA INSTEAD. *21* 00343050 * *21* 00343060 * ON ENTRY, R8 POINTS TO THE ABEND HANDLER'S URB *21* 00343070 * *21* 00343080 ********************************************************************21* 00343090 SPACE 00343100 TERMIURB EQU * *21* 00343110 ST R14,R14SAVE SAVE RETURN REGISTER *21* 00343120 LH R14,=AL2(L'INTURB) LENGTH OF URB *21* 00343130 LA R15,INTURB ADDRESS WS URB *21* 00343140 LA R1,256 MAX MOVE LENGTH *21* 00343150 IURBMVLP EQU * *21* 00343160 CR R14,R1 MORE THAN MAX MOVE ? *21* 00343170 BL IURBLSTM NO. DO LAST MOVE *21* 00343180 MVC 0(256,R15),0(R8) DO THE MOVE *21* 00343190 A R15,=F'256' BUMP TO POINTER *21* 00343200 A R8,=F'256' BUMP FROM POINTER *21* 00343210 S R14,=F'256' DECREMENT TOTAL LENGTH *21* 00343220 B IURBMVLP LOOP THROUGH MOVE *21* 00343230 IURBLSTM EQU * *21* 00343240 BCTR R14,0 DECREMENT FOR EXECUTE *21* 00343250 EX R14,URBMOVE LAST MOVE *21* 00343260 LA R8,INTURB ADDRESS URB *21* 00343270 LA R15,URBNLBUF-DURB(R8) BUFFER ADDRESS *21* 00343280 ST R15,URBOUT-DURB(R8) SET URBOUT *21* 00343290 ST R15,URBNLBFA-DURB(R8) SET BUFFER ADDRESS *21* 00343300 LA R15,URBECB-DURB(R8) ECB ADDRESS *21* 00343310 ST R15,URBOPCOD-DURB(R8) SAVE IT *21* 00343320 L R14,R14SAVE RESTORE RETURN REGISTER *21* 00343340 BR R14 RETURN TO CALLER *21* 00343350 SPACE 2 00343360 URBMOVE MVC 0(0,R15),0(R8) *21* 00343370 EJECT 00343380 *USE THE WORKING STORAGE URB TO ELIMINATE *21* 00392010 *THE POSSIBILITY OF A SYSTEM 301 ABEND. *21* 00392020 BAL R14,TERMIURB YES. USE INTERNAL URB *21* 00392030 TERM8055 EQU * *21* 00392040 OI URBFLAG1,X'01' SET URB IN USE *21* 00392050 NI URBFLAG1,X'FF'-X'01' TURN OFF IN USE BIT *21* 00412010 NI URBFLAG1,X'FF'-X'01' TURN OFF IN USE BIT *21* 00451010
End of Zap Deck