For SYSTEM 2000 Version: 12.0
Problem Status: ZC (Zap Coded) -- Fix has received limited testing
Description of Problem:
INTERMITTENT 0C2 ABEND WHEN EXECUTING THE PC INSTRUCTION IN PLXFRMT AND S2KADRC. CAUSES THE CICS USER TO RECEIVE THE MESSAGE 'MULTI-USER TP NOT ACTIVE
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 4743 MVS
./ CHANGE NAME=S2KADRC
ADRCABCD DS F *05* 00004010
ADRCRCNT DS F *05* 00004020
ADRCPSW DS 2F *05* 00004030
ADRCFLG DS X *05* 00004040
* X'00' - HAVE NOT RETRIED PC INSTRUCTION *05* 00004050
* X'FF' - HAVE RETRIED PC INSTRUCTION *05* 00004060
* *05* 16DEC93 GOH B4743 TRAP 0C2 ON PC AND TRY AGAIN *05* 00009990
XC ADRCRCNT,ADRCRCNT CLEAR RETRY COUNT *05* 00071010
ADR$0505 EQU * *05* 00198010
* *05* 00224010
* DETERMINE IF ABEND WAS 0C2 AND IF SO, RETRY THE PC COMMAND *05* 00224020
* *05* 00224030
EXEC CICS ASSIGN ABCODE(ADRCABCD) 00224040
CLC ADRCABCD,CASRA ASRA ABEND ? *05* 00224050
BNE EXITE310 NO. CONTINUE *05* 00224060
EXEC CICS ASSIGN ASRAPSW(ADRCPSW) 00224070
L R14,ADRCPSW+4 ADDR OF ABEND *05* 00224080
LA R14,0(R14) CLEAR HI BIT *05* 00224090
LA R15,ADR$0505 PC INST ADDR *05* 00224100
CR R14,R15 SAME ? *05* 00224110
BNE EXITE310 NO. CONTINUE *05* 00224120
* *05* 00224130
* AT THIS POINT WE KNOW THAT WE GOT AN 0CX ABEND ON THE *05* 00224140
* PC INSTRUCTION. WE WILL NOW RETRY THE PC INSTRUCTION. *05* 00224150
* TAKE A SNAP DUMP FOR IDENTIFICATION OF 0C2. *05* 00224160
* *05* 00224170
EXEC CICS DUMP TRANSACTION DUMPCODE('PCC2') FROM(SAVECOM) LENGTH(30) 00224180
L R15,ADRCRCNT BUMP RETRY COUNT *05* 00224190
LA R15,1(R15) UP ONE *05* 00224200
C R15,=F'5' MORE THAN ENOUGH ? *05* 00224210
BH EXITE301 YES. JUST FINISH UP *05* 00224220
ST R15,ADRCRCNT CONTINUE RETRIES *05* 00224230
MVI ADRCFLG,X'FF' TURN ON RETRY FLAG *05* 00224240
B GOPCCALL RETRY THE PC STUFF *05* 00224250
EXITE301 EQU * *05* 00224260
MVI READSW,X'FF' TURN OFF READ SWITCH *05* 00224270
B RTN04 GIVE BACK BAD RETURN *05* 00224280
EXITE310 EQU * *05* 00224290
CASRA DC CL4'ASRA' *05* 00301010
./ CHANGE NAME=PLXFRMT
* *20* 16DEC93 GOH B4743 TRAP 0C2 ON PC AND TRY AGAIN *20* 00010960
ADRCABCD DS F *20* 00049010
ADRCRCNT DS F *20* 00049020
ADRCPSW DS 2F *20* 00049030
ADRCFLG DS X *20* 00049040
* X'00' - HAVE NOT RETRIED PC INSTRUCTION *20* 00049050
* X'FF' - HAVE RETRIED PC INSTRUCTION *20* 00049060
XC ADRCRCNT,ADRCRCNT CLEAR RETRY COUNT *20* 01351010
ADR$0505 EQU * *20* 01462010
* *20* 01480010
* IF ABEND WAS 0C2 RETRY THE PC COMMAND *20* 01480020
* *20* 01480030
EXEC CICS ASSIGN ABCODE(ADRCABCD) 01480040
CLC ADRCABCD,CASRA ASRA ABEND ? *20* 01480050
BNE EXITE310 NO. CONTINUE *20* 01480060
EXEC CICS ASSIGN ASRAPSW(ADRCPSW) 01480070
L R14,ADRCPSW+4 ADDR OF ABEND *20* 01480080
LA R14,0(R14) CLEAR HI BIT *20* 01480090
LA R15,ADR$0505 PC INST ADDR *20* 01480100
CR R14,R15 SAME ? *20* 01480110
BNE EXITE310 NO. CONTINUE *20* 01480120
* *20* 01480130
* AT THIS POINT WE KNOW THAT WE GOT AN 0C2 ABEND ON THE *20* 01480140
* PC INSTRUCTION. WE WILL NOW RETRY THE PC INSTRUCTION. *20* 01480150
* TAKE A SNAP DUMP FOR IDENTIFICATION OF 0C2. *20* 01480160
* *20* 01480170
EXEC CICS DUMP TRANSACTION DUMPCODE('PCC2') FROM(SAVECOM) LENGTH(30) 01480180
L R15,ADRCRCNT BUMP RETRY COUNT *20* 01480190
LA R15,1(R15) UP ONE *20* 01480200
C R15,=F'5' MORE THAN ENOUGH ? *20* 01480210
BH EXITE301 YES. JUST FINISH UP *20* 01480220
ST R15,ADRCRCNT CONTINUE RETRIES *20* 01480230
MVI ADRCFLG,X'FF' TURN ON RETRY FLAG *20* 01480240
B GOPCCALL RETRY THE PC STUFF *20* 01480250
EXITE301 EQU * *20* 01480260
MVI READSW,X'FF' TURN OFF READ SWITCH *20* 01480270
B RTN04 GIVE BACK BAD RETURN *20* 01480280
EXITE310 EQU * *20* 01480290
CASRA DC CL4'ASRA' *20* 01527010
End of Zap Deck