MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

A U0474 abend occurred during execution of program

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming
View previous topic :: View next topic  
Author Message
nadh
Intermediate


Joined: 08 Oct 2004
Posts: 192
Topics: 89

PostPosted: Thu Feb 05, 2009 9:45 am    Post subject: A U0474 abend occurred during execution of program Reply with quote

Hi,

I'm working in production Support. One program is abending daily for particular customer. I'm not able to figure out problem from dump. I'm giving part of dump below. Please help me out to find out the problem. I find out the u0474 abend will occur if program goes in loop and operator cancels the job.
Code:

*******************************************                                 
*             Error Location              *                                 
*******************************************                                 
                                                                             
The next sequential instruction to be executed in program CV430S11 was       
at displacement 00000910.                                                   
                                                                             
The program was compiled on 17 JUL 2007 and is 00001078 bytes long.         
                                                                             
It is part of load module CV430S11.                                         
                                                                             
The module was dynamically loaded.                                           



The code in compile listing for the above displacements is as below
For displacement 000910
Code:

001341  MOVE
0008FE  4850 A058               LH    5,88(0,10)              PGMLIT AT +40     
000902  5C40 32A4               M     4,676(0,3)              SUB2             
000906  1865                    LR    6,5                                       
000908  4850 A058               LH    5,88(0,10)              PGMLIT AT +40     
00090C  5C40 32A0               M     4,672(0,3)              SUB1             
000910  1875                    LR    7,5                                       
000912  5A70 912C               A     7,300(0,9)              BLW=0             
000916  5A60 912C               A     6,300(0,9)              BLW=0             
PAGE 64                                                                         
5655-G53 IBM Enterprise COBOL for z/OS  3.4.1               CV430S11  Date 07/17
00091A  D220 705F 605F          MVC   95(33,7),95(6)          HOLD-CUSTOMER-SAE(
343  MOVE                                                                       
000920  4850 A058               LH    5,88(0,10)              PGMLIT AT +40     
000924  5C40 32A4               M     4,676(0,3)              SUB2             
000928  1865                    LR    6,5                                       
00092A  5A60 912C               A     6,300(0,9)              BLW=0             
00092E  D220 605F 32B0          MVC   95(33,6),688(3)         HOLD-CUSTOMER-SAE(

The last known I/O request or call in the program above was issued with
a return address at displacement 00000ACC.
For displacement 000acc
Code:

   000ACC  5850 9128               L     5,296(0,9)              BL=1           
   000AD0  40F0 5008               STH   15,8(0,5)               RETURN-CODE   
001390  MOVE                                                                   
   000AD4  D201 33F4 400A          MVC   1012(2,3),10(4)         DLI-STATUS-CODE
001392  IF                                                                     
   000ADA  D501 33F4 A0C0          CLC   1012(2,3),192(10)       DLI-STATUS-CODE
   000AE0  4770 B724               BC    7,1828(0,11)            GN=25(000B4C) 
001393  MOVE                                                                   
   000AE4  D201 32DA 32FE          MVC   730(2,3),766(3)         WS-BLG-EFF-YEAR
001394  MOVE                                                                   
   000AEA  D201 32DD 3300          MVC   733(2,3),768(3)         WS-BLG-EFF-MONT
001395  MOVE                                                                   
   000AF0  D201 32E0 3302          MVC   736(2,3),770(3)         WS-BLG-EFF-DAY


Please help me out to figure out the exact location where code is wrong.

Thanks
Nadh
Back to top
View user's profile Send private message Send e-mail
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Thu Feb 05, 2009 11:02 am    Post subject: Reply with quote

nadh,

search before posting. Check this link

http://www.mvsforums.com/helpboards/viewtopic.php?p=965#965

Kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Terry_Heinze
Supermod


Joined: 31 May 2004
Posts: 391
Topics: 4
Location: Richfield, MN, USA

PostPosted: Sat Feb 07, 2009 1:50 am    Post subject: Reply with quote

The error was probably at the Assembler instruction Multiply at offset 90C. Look at the MOVE statement that starts at line 1341 in your compile listing. The source field probably has invalid data in it.
_________________
....Terry
Back to top
View user's profile Send private message Send e-mail
rk_pulikonda
Beginner


Joined: 27 May 2003
Posts: 22
Topics: 2
Location: India

PostPosted: Sat Feb 14, 2009 3:03 pm    Post subject: Reply with quote

Did you verified the order of PCB's defined in PSB and your program at entry level.
_________________
Thanks
-Ram
Back to top
View user's profile Send private message
haatvedt
Beginner


Joined: 14 Nov 2003
Posts: 66
Topics: 0
Location: St Cloud, Minnesota USA

PostPosted: Sat Feb 14, 2009 3:05 pm    Post subject: Reply with quote

Nahd,

you mentioned that operations canceled the job because it appears to be in a loop.

if you could confirm that is indeed what is happening, there may be some tools which could potentially help you to find out where it is looping in the code.

We use a tool called STROBE from Compuware to assist in this type of analysis.

When the operations staff has determined that the job / program is in a loop, BEFORE they cancel the job, start a STROBE against the job for 3 or 4 minutes to allow STROBE to collect information about where the job is using resources (cpu time specifically in this case). Then after the STROBE is complete, then Operations can cancel the job and take whatever course of action that you currently take to recover the job.

then the next day or immediately if you wish, create the strobe report. then using the strobe report and the compiler listing (hopefully with the assembler listing) you can determine where in the program it was using cpu time. Then perhaps you can spot a condition which MAY be alowing it to go into a loop.

what i usually do at this point is to add some logic to attempt to identify when the code is in a loop and then issue a user abend. That way i can study the dump, determine the values in storage at the time that the looping is occuring and hopefully figure out what is causing the looping condition.

then the code should be changed to eliminate the cause of the loop, or if its data related, then add logic to detect when this condition exists and issue a user abend after creating messages to indicate that a looping condition has been detected so that at the very least the job does not continue to loop until someone notices it.... this is a significant waste of valuable resources and elapsed time...

good luck, these can be very difficult problems to resolve...

on the other hand, solving this type of problem will make you a better programmer....
_________________
Chuck Haatvedt

email --> clastnameatcharterdotnet

(replace lastname, at, dot with appropriate
characters)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group