You should now know the point in the program at which the abend occurred,
and what the program was attempting to do.
If your program uses or calls other programs or systems, examine the interface
and the way you pass data to the program. Are you checking the returned information
from the other system? Incorrect logic paths based on incorrect assumptions
can give unpredictable results.
Examine the flow of your program using tools like the Execution Diagnostic
Facility (CEDF). Check the transient data and temporary storage queues with
the CICS® browse transaction (CEBR), and use the CICS command-level interpreter
and syntax checker transactions (CECI and CECS). If necessary, insert additional
statements into the program until you understand the flow.
Look at any trace output you might have. If you have a "normal" trace
output included in the documentation, compare the two for differences.
Define the current environment, and try to isolate any changes in it since
your program last worked. This can be difficult in large installations, because
so many people interact with the systems and slight changes can affect things
that seem unconnected.