WAVV 2014 CICS ASRA Dump Analysis Answers Mike Poil CICS Level 3 Service IBM Hursley [email protected] April 2014 CICS Transaction Server Exercise - ASRA Dumps 2 and 3 Dump 2 is a Protection Exception due to a bad address being used. Identify the failing machine and COBOL instructions. 000470 D24F 2000 8000 000147 MVC 0(80,2),0(8) REC2 REC1 MOVE REC1 TO REC2. Explain why the machine instruction failed. GPR 2 (the address of REC2) is 00000000, you cannot overwrite storage there. What is the address of RESP2 and its hex/decimal value? 019CB8B6 and its value is 0000000D/13. 05 RESP2 PIC S9(8) COMP. BLW=0000+03E,000001E 4C TGTLOC GPR 13 000134 BASE LOCATORS FOR WORKING-STORAGE BLW=0 GPR 13 + 134 GPR 13 019CB648 + 134 = 019CB77C, BLW=0 contains 019CB878, 019CB878 + 3E = 019CB8B6 00006EC0 00000000 00000000 019CB840 019CB878 00000000 006C00D0 00000000 019CD788 *........... ..................PH* 019CB770 00007000 F0F00000 00000000 000D0000 00000000 00000000 00000000 00000000 00000000 *00..............................* 019CB8B0 CICS in a Service Oriented Architecture | www.ibm.com/cics 2 CICS Transaction Server Exercise - ASRA Dumps 2 and 3 If you have time, what is the address and value of BLL #4? The address is 019CB790 and the value is 00000000. TGTLOC GPR 13 000138 BASE LOCATORS FOR LINKAGE-SECTION BLL=0 +138, BLL=1 +13C, BLL=2 +140, BLL=3 +144, BLL=4 +148 GPR 13 019CB648 00006EE0 + 148 = 019CB790, BLL=4 contains 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01D09680 00000000 CICS in a Service Oriented Architecture | www.ibm.com/cics 3 *..........................O.....* 019CB790 CICS Transaction Server Exercise - ASRA Dumps 2 and 3 Dump 3 is an Operation Exception due to a bad address being used. Use GPR 14 as a substitute for the PSW address and see if it works. GPR 14 = 01D098E4. Subtract PROGC1 load point 01D09420 gives Phase Offset +0004C4. Subtract CSECT offset 000020 gives +0004A4. This takes us to statement 150 CALL 'PROGC2' USING COMMC2. Use the Linkage Editor map to find the root cause. In the Linkage Editor Map we see that PROGC2 is an UNRESOLVED EXTERNAL REFERENCE. The address that COBOL uses to transfer control will contain 00000000, so a static CALL will always fail in the way we see here. CICS in a Service Oriented Architecture | www.ibm.com/cics 4 CICS Transaction Server Exercise - ASRA Dump 2 Trace Analysis Answer the following questions: How much RUWAPOOL storage was requested and was in obtained in 24-bit or 31bit storage? X'8EC0' bytes from 31-bit storage at address 019C48B8. How much LE-RUWA storage was requested and was in obtained in 24-bit or 31-bit storage? X'FF0' bytes from 24-bit at address 006C0838. Did the first FILEA READ complete successfully? Yes. What key value was used for the second FILEA READ? (Hint: AP 0492.) 000000 from entry =000078=. CICS in a Service Oriented Architecture | www.ibm.com/cics 5 CICS Transaction Server Exercise - ASRA Dump 2 Trace Analysis What do you think the AP 04B7 entry is telling you? That there is a problem with the READ request. Document the AP 04B7 data 2 one-byte VSAM R15 value at offset X'25' and the one-byte VSAM Error Code at offset X'27', which trace entry interprets it and what does it mean? R15=08 Error code=10 (you will also see it in the previous AP 0493 and the following AP 0492). You can choose from several trace entries for an explanation, the following AP 04B1, AP 04E1 and AP 00E1 all say that the record was not found. RESP(13) in the AP E161 says the same thing - this is what you saw in RESP2 in the earlier exercise. CICS in a Service Oriented Architecture | www.ibm.com/cics 6 CICS Transaction Server Exercise - ASRA Dump 2 Trace Analysis Use the correct trace RET address and the dump to work back to the failing COBOL source statement, note the COBOL statement number; now identify what the program will do if an exception happens at this point. You cannot cheat for this one with EI level 2 active as the AP 0161 gives you the original source statement number as 43, and you only have the compile listing after translation. The RET from the second AP 00E1 READ =000073= is 01D0985A. Subtracting the load point 01D09420 and another 20 for the CSECT offset gives the compile listing offset of 00041A, which is in line 144 CALL 'DFHEI1' from the EXEC CICS READ FILE('FILEA') RIDFLD (RID2). There is no check on the RESP(RESP2), so the program will continue even if there is an error, and it has continued with a REC2 address of 00000000 from the NOTFND. Can you now see what the root cause of the ASRA/0C4 is? Bad programming! CICS in a Service Oriented Architecture | www.ibm.com/cics 7
© Copyright 2024 ExpyDoc