just a random pick
JCL Abend code : S031
A QISAM I/O error occurred
The control program attempted to pass control to an error analysis (SYNAD) routine, but found that (1) the DCBSYNAD field of the data control block did not contain the address of a valid SYNAD routine, or (2) the error occurred after a CLOSE macro instruction was run by task end (the problem program returned control to the supervisor without processing a CLOSE macro instruction).
The task was abnormally ended. The DCBEXCD1 and DCBEXCD2 fields of the data control block indicate the possible causes of the original error:
Record not found.
Incorrect actual address for lower limit.
Space not found.
Uncorrectable input error.
Uncorrectable output error.
Block could not be reached (input).
Block could not be reached (update).
DCB closed when error detected.
PUT: length of field greater than length indicated in DCBLRECL field of the data control block.