cz016m
New User
Joined: 09 Mar 2016 Posts: 9 Location: United States
|
|
|
|
I received the following S0C4 during April 2019 month-end batch processing and I'm struggling to find the root cause in this inherited system. The information I've read about S0C4 reason code 10 doesn't make sense to me. I suspect I have a data issue, but I can't find it.
Code: |
---- WEDNESDAY, 01 MAY 2019 ----
$HASP373 ZUQ10E STARTED - INIT AC - CLASS P - SYS MXC
ACF9CCCD USERID USERPROD IS ASSIGNED TO THIS JOB - ZUQ10E
IEF403I ZUQ10E - STARTED - TIME=01.34.00
- -----TIMINGS (MINS.)------
-STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK
-NONCAT2 CONTROLR 00 280 222 .00 .00 .0
-ZUQ10CLO CEMTSTP 00 244 59 .00 .00 .0
IEA995I SYMPTOM DUMP OUTPUT 330
SYSTEM COMPLETION CODE=0C4 REASON CODE=00000010
TIME=01.42.55 SEQ=56761 CPU=0000 ASID=0121
PSW AT TIME OF ERROR 078D1000 F4F84040 ILC 2 INTC 10
NO ACTIVE MODULE FOUND
NAME=UNKNOWN
DATA AT PSW IS UNAVAILABLE AT THIS TIME
GR 0: 0002AD28 1: 12600220
2: 000354EC 3: F4F84040
4: 00035358 5: 126002C0
6: 126000C0 7: 00035110
8: 126000C4 9: 00000005
A: 00000003 B: 876A8348
C: 12604018 D: 12600130
E: 876A8954 F: F4F84040
END OF SYMPTOM DUMP
IEF450I ZUQ10E ZUQ10E10 ZUQ10E - ABEND=S0C4 U0000 REASON=00000010
TIME=01.42.56
-ZUQ10E ZUQ10E10 *S0C4 303K 36031 .30 .03 8.8
-ZUQ10E ZUQ1020 FLUSH 0 0 .00 .00 .0
-ZUQ10E ZUQ1030 FLUSH 0 0 .00 .00 .0
-ZUQ10E ZUQ1040 FLUSH 0 0 .00 .00 .0
-ZUQ10OPE CEMTSTP FLUSH 0 0 .00 .00 .0
IEF404I ZUQ10E - ENDED - TIME=01.42.56
-ZUQ10E ENDED. NAME-BISHOP.RW.GLCIP.PROD TOTAL TCB CPU TIME=
$HASP395 ZUQ10E ENDED - ABEND=S0C4
|
The program that is executing in the job step that failed reads and updates one VSAM file called SDP-MASTER, passes data to and calls several subroutines, and writes output records to six GDGs. The programs have run successfully each month since their inception 22 months ago. The reads/writes of the VSAM file only occur in the first program, not the subroutines. However, the subroutines may write to one or more of the GDGs.
The FD of the VSAM file is as follows:
Code: |
FD SDP-MASTER.
01 SDP-HEADER-RECORD PIC X(29).
01 SDP-TRAILER-RECORD PIC X(29).
01 SDP-MSTR-SEG.
05 SEGHDR.
10 SDP-KEY-DATA.
15 FORMAT-ID PIC X(2).
15 SEGMENT-KEY.
20 KEY-SSN PIC 9(09).
20 KEY-SEG-ID PIC X.
05 SEGDATA.
10 SEG-FORMAT-ID PIC X(2).
10 IOSEG-NR-DTLS PIC S9(4) COMP.
10 PIC X OCCURS 0 TO 17830
DEPENDING ON IOSEGL.
|
A traditional dump was not sent to Abend-Aid. The programs appear to have executed successfully based on the program output in JES. The second to last line of code in the program displays something in JES.
Code: |
DISPLAY '******** ZUQ10EOM ENDS HERE *********'.
GOBACK.
|
Last line of JES output:
Code: |
******** ZUQ10EOM ENDS HERE *********
|
I'm assuming that immediately after the program finished processing, the abend occurred, but I'm not sure.
Additional facts:
1) The I/O counts from each program are similar to previous months. In fact, all of the output written to JES is consistent with previous months.
2) There have been no code changes recently.
3) New records are added to the VSAM each day.
4) I have tested using VSAM backups created prior to Thursday 4/25/19 and the S0C4 does not occur.
5) All tests using the VSAM backups subsequent to Thursday 4/25/19 produce the S0C4. I'm scrutinizing the data, but I have found no obvious discrepancies yet.
Questions:
1) Why didn't one of the programs produce a traditional, useful dump in Abend-AID?
2) How do I know which program or subroutine caused the abend?
3) Is the abend related to the handling of the VSAM file?
Any insight would be appreciated. Where should I be looking?
Here are the initial steps in the main COBOL program:
Code: |
LINKAGE SECTION.
01 PARM-FIELDS.
05 PARM-LENGTH PIC S9(4) COMP SYNC.
05 PARM-INTEREST-DATE PIC 9(8).
PROCEDURE DIVISION USING PARM-FIELDS.
000000-MAIN.
DISPLAY '******** ZUQ10EOM BEGINS HERE *********'.
MOVE FUNCTION WHEN-COMPILED TO WS-FULL-COMPILE-DATE
DISPLAY
'COMPILED ON ' WS-C-DATE ' AT ' WS-C-HOUR ':' WS-C-MINUTES
ACCEPT WS-SYS-DATE FROM DATE YYYYMMDD.
DISPLAY 'TODAY S DATE = ' WS-SYS-DATE.
MOVE TODAYS-DATE TO WORK-DATE-8.
IF PARM-LENGTH > 0
DISPLAY 'PARM INTEREST DATE = ' PARM-INTEREST-DATE
MOVE PARM-INTEREST-DATE TO WS-RUN-DATE
ELSE
MOVE TODAYS-DATE TO WS-RUN-DATE.
DISPLAY 'COMP DATE USED = ' WS-RUN-DATE.
PERFORM 100000-OPEN-FILES.
DISPLAY 'WORKLINK = ' WORK-LINK-FIELDS
IF ERROR-SW = 'N'
PERFORM 200000-PROCESS-SDP-MASTER
UNTIL SDPMASTR-EOF
ELSE
DISPLAY 'ERROR OPENING FILES'
CALL 'ABEND'.
PERFORM 300000-EOJ.
DISPLAY '******** ZUQ10EOM ENDS HERE *********'.
GOBACK.
100000-OPEN-FILES.
OPEN OUTPUT PROCESSED-ITEMS
ARMY-BASELINE
NAVY-BASELINE
AIRF-BASELINE
MARN-BASELINE
OPEN I-O SDP-MASTER
|
JCL:
Code: |
//ZUQ10E10 EXEC PGM=ZUQ10EOM
//SDPMASTR DD DSN=ZUV1.Q10.SDPMSTR,DISP=SHR
//FILE1 DD DSN=ZUXX.Q10.EOM.PIFILE(+1),
// DISP=(,CATLG,DELETE),
// SPACE=(TRK,(30,5),RLSE),
// UNIT=PRDDA,LABEL=RETPD=045,
// DCB=(SYXX.MODEL,RECFM=VB,LRECL=337)
//FILE2 DD DSN=ZUXX.Q10.FIL2BLNE(+1),
// DISP=(,CATLG,DELETE),
// SPACE=(TRK,(30,5),RLSE),
// UNIT=PRDDA,LABEL=RETPD=045,
// DCB=(SYXX.MODEL,RECFM=FB,LRECL=80)
//FILE3 DD DSN=ZUXX.Q10.FIL3BLNE(+1),
// DISP=(,CATLG,DELETE),
// SPACE=(TRK,(30,5),RLSE),
// UNIT=PRDDA,LABEL=RETPD=045,
// DCB=(SYXX.MODEL,RECFM=FB,LRECL=80)
//FILE4 DD DSN=ZUXX.Q10.FIL4BLNE(+1),
// DISP=(,CATLG,DELETE),
// SPACE=(TRK,(30,5),RLSE),
// UNIT=PRDDA,LABEL=RETPD=045,
// DCB=(SYXX.MODEL,RECFM=FB,LRECL=80)
//FILE5 DD DSN=ZUXX.Q10.FIL5BLNE(+1),
// DISP=(,CATLG,DELETE),
// SPACE=(TRK,(30,5),RLSE),
// UNIT=PRDDA,LABEL=RETPD=045,
// DCB=(SYXX.MODEL,RECFM=FB,LRECL=80)
//FILE6 DD DSN=ZUXX.Q10.FILE6SUM(+1),
// DISP=(,CATLG,DELETE),
// UNIT=PRDDA,SPACE=(TRK,(1000,100),RLSE),
// LABEL=RETPD=095,
// DCB=(SYXX.MODEL,RECFM=FB,LRECL=59)
//SYSOUT DD SYSOUT=(,)
//ABNLDUMP DD DUMMY
//ABENDAID DD SYSOUT=(,)
|
|
|