For SYSTEM 2000 Version: 12.1
Problem Status: ZD -- R12.1 FFD3
Description of Problem:
SCF USERS NOT GETTING CLEANED UP WHEN TASKS ASSOCIATED WITH THEM ARE FORCE PURGED.
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 4844 MVS
*
* THIS BUG FIX WILL REPAIR AREAS IN THE CICS INTERFACE ERROR HANDLING
* THAT HAVE BEEN BROKEN BY OTHER BUG FIXES. IN PARTICULAR, SCF USERS
* THAT HAVE BEEN PURGED FROM CICS WILL NEVER GET CLEANED UP.
*
* THE DFHPEP PART OF THIS FIX IS TO BE APPLIED TO DFHPEP21 FOR THE 2.1
* RELEASE OF CICS. APPLY THE DFHPEP32 FIX FOR CICS VERSION 3.2 AND
* ABOVE.
*
./ CHANGE NAME=SCFINTF
* *13* 20JUN96 GOH B4844 SET TASK NUMBER IN URB FOR SCF USERS *13* 00020010
MVC URBTASK,EIBTASKN SET TASK NUMBER *13* 00171010
./ CHANGE NAME=SCFTERM
* *20* 20JUN96 GOH B4844 FIX HANG PROBLEMS WITH ABENDING SCF USERS 00026880
MVC SCFCUID,=CL8' ' CLEAR USER ID FIELD *20* 00133010
BE TERM0100 YES. GO AHEAD ON *20* 00204000
ST R8,SCFCURB SET URB ADDRESS *20* 00206010
TM URBFLAG1,URBWAIT WAIT FLAG ON ? *20* 00217010
BZ TERM0209 NO. PROCESS IT *20* 00217020
CLI SCFCFRC,X'FF' FORCED ? *20* 00217030
BE TERM0203 YES. CONTINUE *20* 00217040
TERM0202 EQU * *20* 00217050
* *20* 00217060
* AT THIS POINT, WE NEED TO CHECK THE URBECB TO *20* 00217070
* DETERMINE IF IT HAS BEEN POSTED BY SYSTEM 2000 AND IF SO, WE *20* 00217080
* WILL TURN OFF THE URBWAIT FLAG AND WRAP UP PROCESSING FOR THIS *20* 00217090
* URB. *20* 00217100
* *20* 00217110
TM URBECB,X'40' HAS URB BEEN POSTED ? *20* 00217120
BO TERM0203 YES. WRAP IT UP *20* 00217130
* *20* 00217140
* THE URB HAS NOT BEEN POSTED BY MULTI-USER SO WE WILL TURN ON *20* 00217150
* THE ERROR FLAG AND DELAY CLEAN UP TILL ANOTHER TIME. *20* 00217160
* *20* 00217170
OI URBFLAG1,URBERR TURN ON ERROR FLAG *20* 00217180
B TERM0299 RETURN TO CALLER *20* 00217190
TERM0203 EQU * *20* 00217200
* *20* 00217210
* IF THE URB HAS BEEN POSTED, WE WILL NOW TURN OF THE URBWAIT FLAG*20* 00217220
* AND CONTINUE PROCESSING TO TERMINATE THIS USER. *20* 00217230
* *20* 00217240
NI URBFLAG1,X'FF'-URBWAIT TURN OFF WAIT FLAG *20* 00217250
TERM0209 EQU * *20* 00217260
LA R0,#URBOCIO CANCEL OPERATION *20* 00222000
B TERM0241 CONTINUE *20* 00257010
OI URBFLAG1,#URBWAIT TURN ON WAIT FLAG *20* 00258010
TERM0241 EQU * *20* 00258020
B TERM0251 CONTINUE *20* 00269010
NI URBFLAG1,X'FF'-#URBWAIT TURN OFF WAIT FLAG *20* 00270010
TERM0251 EQU * *20* 00270020
DROP R14 00312010
* *20* 00312020
* DETERMINE IF USER HAS STACE TABLE ENTRY AND FREE IT TOO *20* 00312030
* *20* 00312040
L R14,SCFCUSE ADDRESS S2KCUSE *20* 00312050
L R14,S2KSTAC-DS2KCUSE(R14) STACE TABLE *20* 00312060
USING DSTACE,R14 00312070
TERM0296 EQU * *20* 00312080
CLI STACENAM,X'FF' END OF LIST ? *20* 00312090
BE TERM0299 YES. WRAP IT UP *20* 00312100
CLC STACENAM,SCFCUID OUR ENTRY *20* 00312110
BE TERM0297 YES. FIX IT *20* 00312120
LA R14,STACEL$(,R14) NO. NEXT ONE *20* 00312130
B TERM0296 CHECK THEM ALL *20* 00312140
TERM0297 EQU * *20* 00312150
XC STACENAM,STACENAM CLEAR IT ALL *20* 00312160
XC STACEFLG,STACEFLG FLAG TOO *20* 00312170
TERM0299 EQU * *20* 00312180
ST R8,SCFCURB SET URB ADDRESS *20* 00419010
MVC SCFCUID,URBUSER SET USER ID IN COMM *20* 00419020
./ CHANGE NAME=DFHPEP21
* DFHPEP-07 20JUN96 GOH B4844 CHECK FOR SCF AND PLEX ABENDS *07* 00023990
ZAP UNPKWK1,TCAKCTTA GET TASK ID (PACKED 3) *07* 00062010
L R4,UNPKWK1 TO FOUR BYTES *07* 00062020
DFHPC TYPE=LOAD,PROGRAM=S2KCUSE,COND=YES *07* 00062030
CLI TCAPCTR,X'00' OKAY ? *07* 00062040
BNE POSTAB20 NO. JUST DO EPOSTAB *07* 00062050
L R1,TCAPCLA ADDRESS LOADED PROGRAM *07* 00062060
L R1,S2KSCFU-DS2KCUSE(R1) ADDRESS URBS *07* 00062070
USING DURB,R1 00062080
POSTAB02 EQU * *07* 00062090
C R4,URBTASK THIS URB ? *07* 00062100
BE POSTAB04 YES. HANDLE IT *07* 00062110
TM URBFLAG1,URBLAST LAST ONE ? *07* 00062120
BO POSTAB20 YES. JUST DO EPOSTAB *07* 00062130
AH R1,URBLEN NO. NEXT ONE *07* 00062140
B POSTAB02 CHECK IT *07* 00062150
POSTAB04 EQU * *07* 00062160
OI URBFLAG1,URBERR TURN ON ERROR FLAG *07* 00062170
DFHIC TYPE=INITIATE,TRANSID=SCFZ,INTRVAL=0 *07* 00062180
*07* DON'T CALL PLXTERM DIRECTLY *07* 00062190
B S2KEXIT RETURN TO CALLER *07* 00062200
POSTAB20 EQU * *07* 00062210
* *07* LINE COMMENTED OUT *07* 00063000
DURBMU RGEQU=NO *07* 00073010
DS2KCUSE *07* 00073020
./ CHANGE NAME=DFHPEP32
* *01* 09APR97 GOH B4844 CHECK USER PRIOR TO ERROR HANDLING AND *01* 00040980
* ALLOW FOR SCF USER CLEANUP *01* 00040990
L R5,EIBTASKN TASK # *01* 00050000
EXEC CICS HANDLE CONDITION ERROR(S2KEXIT) 00050010
EXEC CICS LOAD PROGRAM('S2KCUSE') SET(1) 00050020
L R4,S2KSCFU-DS2KCUSE(R1) ADDR SCF URBS *01* 00050030
USING DURB,R4 *01* 00050040
PEPURBL EQU * *01* 00050050
C R5,URBTASK THIS URB ? *01* 00050060
BE PEPSERR YES. SET ERROR TASK *01* 00050070
TM URBFLAG1,URBLAST LAST URB ? *01* 00050080
BO S2KEXIT YES. RETURN TO CALLER *01* 00050090
AH R4,URBLEN NO. NEXT URB *01* 00050100
B PEPURBL CHECK IT *01* 00050110
PEPSERR EQU * *01* 00050120
OI URBFLAG1,URBERR SET URB IN ERROR TASK *01* 00050130
EXEC CICS START TRANSID('SCFZ') 00050140
S2KEXIT EQU * *01* 00050150
DURBMU RGEQU=NO *01* 00064010
DS2KCUSE *01* 00064020
End of Zap Deck