After some declaration of variables in an application Cobol program were changed, a Smart/RESTART Job got several abends S0C4 in a Smart/RESTART load module. Attempted to provide more storage with the Smart/RESTART CKPT_SIZE parameter but it did not help.
SYSTEM COMPLETION CODE=0C4 REASON CODE=00000004
TIME=09.17.04 SEQ=49497 CPU=0000 ASID=0105
PSW AT TIME OF ERROR 478D0F00 B41E96C4 ILC 4 INTC 04
ACTIVE MODULE ADDRESS=00000000_341CD000 OFFSET=0001C6C4
NAME=RFA$TSR
DATA AT PSW 341E96BE - 40404040 40404040 40404000
GR 0: 00000000_00000030 1: 00000000_000F232C
2: 00000000_00006CC4 3: 00000000_00000000
4: 00000000_007A3D90 5: 00000000_007FF8F8
6: 00000000_0007A290 7: 00000000_00F8B000
8: 00000000_00000000 9: C9C5C1E5_800060D0
A: 00000000_000F2000 B: 00000000_00012100
C: 00000000_00031248 D: 00000000_000F2294
E: 00000000_00031606 F: 00000000_B41E96C0
The Smart/RESTART CKPT_SIZE parameter has nothing to do with the problem.
The abend S0C4 in load module RFA$TSR was caused by a storage overlay.
Note the DATA AT PSW are X'40' characters .
Most likely, the changed variables are associated with the files I/O areas (records), causing I/O buffer overlays. You need to check your declarations of variables to avoid the memory overlays over the load module RFA$TSR.
The overlay over the Smart/RESTART load module is not always the same as it depends on the affected storage areas, but the solution is to have the right length in the declaration of variables in the application Cobol program.