Posted: Thu Feb 05, 2009 9:45 am Post subject: A U0474 abend occurred during execution of program
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.
Joined: 31 May 2004 Posts: 391 Topics: 4 Location: Richfield, MN, USA
Posted: Sat Feb 07, 2009 1:50 am Post subject:
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
Joined: 14 Nov 2003 Posts: 66 Topics: 0 Location: St Cloud, Minnesota USA
Posted: Sat Feb 14, 2009 3:05 pm Post subject:
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)
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