I've a CICS MQ program which is ending up in S0C4 abend with following error message:
Code:
CEE3204S The system detected a protection exception (System Completion Code=0C4).
From compile unit IGAB0 at entry point IGAB0 at compile unit offset +00007BE0 at entry offset +00007BE0 at address
22815600.
CEE3DMP V1 R8.0: Condition processing resulted in the unhandled condition. 04/22/09 12:36:17 PM Page: 1
Information for enclave IGAB0
Information for thread 8000000000000000
Traceback:
DSA Addr Program Unit PU Addr PU Offset Entry E Addr E Offset Statement Load Mod Service Status
21C53180 CEEHDSP 21FD65E8 +00004A48 CEEHDSP 21FD65E8 +00004A48 UK28164 Call
21C28FF0 CEECGEX 21FCDB90 +000001EA CEECGEX 21FCDB90 +000001EA UK26416 Call
21C28A60 IGAB0 2280DA20 +00007BE0 IGAB0 2280DA20 +00007BE0 Exception
21C288B8 CEECRINV 21FCF880 +00000302 CEECRINV 21FCF880 +00000302 UK16908 Call
21C28838 CEECRINI 21FCEB50 +00000AF6 CEECRINI 21FCEB50 +00000AF6 HLE7730 Call
Condition Information for Active Routines
Condition Information for IGAB0 (DSA address 21C28A60)
CIB Address: 21C53AA0
Current Condition:
CEE3204S The system detected a protection exception (System Completion Code=0C4).
Location:
Program Unit: IGAB0 Entry: IGAB0 Statement: Offset: +00007BE0
Machine State:
ILC..... 0004 Interruption Code..... 0004
PSW..... 079D2000 A2815604
GPR0..... 21C29DA8 GPR1..... 228155B4 GPR2..... 21C29F48 GPR3..... 21C28CB8
GPR4..... 00FDAF10 GPR5..... 00000001 GPR6..... 00006078 GPR7..... 21C2AF48
GPR8..... 21C2BF48 GPR9..... 21C29C50 GPR10.... 2280DB60 GPR11.... 009EEB58
GPR12.... 228155B4 GPR13.... 21C28A60 GPR14.... A281190C GPR15.... 009E0620
Storage dump near condition, beginning at location: 228155F0
+000000 228155F0 40744780 C04C41E0 C04C5EE0 C25C0B0E 58606010 D501C214 60004770 C08ED503 | ....<...<;.B*...--.N.B.-.....N.
For identiying the instruction in which it's failing, I did compilation with LIST option, but I'm unable to findout the Offset in Compiler listing. The listing till max 00795E address. Is it because it's considering Offset of Calling program also?
Code:
007922 5080 922C ST 8,556(0,9) IPCB=1+16
007926 9128 9054 TM 84(9),X'28' TGTFIXD+84
00792A 58B0 C044 L 11,68(0,12) PBL=7
00792E 4770 B000 BC 7,0(0,11) GN=464(007944)
007932 48F0 2008 LH 15,8(0,2) RETURN-CODE
007936 58D0 D004 L 13,4(0,13)
00793A 58E0 D00C L 14,12(0,13)
00793E 980C D014 LM 0,12,20(13)
007942 07FE BCR 15,14
007944 GN=464 EQU *
007944 D20B D258 A955 MVC 600(12,13),2389(10) TS2=0 PGMLIT AT +2281
00794A 4880 2008 LH 8,8(0,2) RETURN-CODE
00794E 5080 D264 ST 8,612(0,13) TS2=12
007952 4110 D258 LA 1,600(0,13) TS2=0
007956 5880 905C L 8,92(0,9) TGTFIXD+92
1PP 5655-G53 IBM Enterprise COBOL for z/OS 3.4.1 IGAB0 Date 04/23/2009 Time 10:41:16 Page 279
0 00795A 58F0 8224 L 15,548(0,8) V(IGZETRM )
00795E 05EF BALR 14,15
1PP 5655-G53 IBM Enterprise COBOL for z/OS 3.4.1 IGAB0 Date 04/23/2009 Time 10:41:16 Page 280
0 *** TGT MEMORY MAP ***
TGTLOC
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
What has probably happended is that the addressed being displayed was an instruction within a COBOL VERB (IE: MOVE), which is broken down into several/many Assembler instructions and this is the address of the offending instruction.
Compile the program using the LIST,NOOFFSET compile options and then, look for this address.
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
Sorry, I went too fast. I see that you supplied the Assembler expansion. Was there any complier maintenance applied or was the program compiled previously using different keywords for options, such as NUMPROC or TRUNC?