An SC03 abend usually occurs after a step has completed, sometimes even after producing all the expected output.
Still, the abend frequently inhibits execution of subsequent steps, and should be resolved in any case.
IBM documentation of System Codes has the following explanation for an SC03 abend:
A task tried to end normally by issuing a RETURN macro or by branching to the return address in register 14.
The task was not ready to end processing because the task had opened one or more data sets that had not been closed.
When this abend occurs in a VISION:Report application there are multiple things you can check:
- Look within the application for pointers that may be directed to an invalid address. This may have corrupted a DCB.
- Verify the application does not access a field past the end of the record because this may have corrupted the DCB.
This frequently happens when record format is variable and logic branches are taken based upon input conditions.
- If user is controlling I/O via a CALL statement using VISION:Report utilities or his own external calls, check the housekeeping.
Make sure all files that are opened are also closed because the DCB storage may have been freed before the dataset was closed.
If having problems identifying the errant code,
to the OPTIONs in the program.
Add the command TRACE ALL before the first executable statement.
If this does not help resolve the problem, please open an issue and we will be happy to help.
Be sure to attach the complete output from the TRACE run above and the SYSUDUMP output to the issue.