We had written an easytrieve program. In this program we are reading a sequential file (File A). Using a field from File A we are reading alternate index of File B. Here alternate index is unique and having ‘UPGRADE=YES’. After reading the alternate index we will use the primary key to delete that record from base cluster(File B). After deleting that corrupted record we will add the proper record from file A to file B.
Read File A -> Read Alternate Index of file B -> Delete record from file B -> Add record to file B
This program was running fine in production. One day it gave SOC4 abend. But it executed fine when we restarted the program. Whenever we restart the program it works fine. In the abendaid listing we found that SOC4 is occuring in A170OS program. This is not our program. It looks like an easytrieve internal module. The instruction before S0C4 is a file open statement in A170OS program.
For every file operation we have a call to abend routine. But it is not going into the abend routine. Addressing mode is 31 and Residence mode is 24 of both abend routine and easytrieve program. But abend routine and program are present in different libraries. We have given both libraries in STEPLIB.We tried to execute this in test region, we got a abend(abend routine). We got the abend while adding record to file B. It excuted fine when we restarted the program.
Could someone please guide me to solve this?