IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

S0C4 Reason Code 10


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
cz016m

New User


Joined: 09 Mar 2016
Posts: 9
Location: United States

PostPosted: Thu May 02, 2019 7:13 am
Reply with quote

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=(,)                             
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 917
Location: The Universe

PostPosted: Thu May 02, 2019 8:49 am
Reply with quote

Errors like this are essentially impossible to analyze in a forum like this one. As you suspect, they are almost always caused by an error in the program.

The first issue is in this message -

PSW AT TIME OF ERROR 078D1000 F4F84040 ILC 2 INTC 10

74F84040 (the high order bit in F4F84040 defines AMODE 31, which is normal) is almost certainly an invalid address, which is the proximate cause of the ABEND. F4F84040 (which is EBCDIC for 48 followed by 2 blanks) is also suspect; most likely the program replaced a data area containing an address with data.

This is about all that can be done in this forum at this time.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts run rexx code with jcl CLIST & REXX 15
No new posts Compile rexx code with jcl CLIST & REXX 6
No new posts Reorg abended with REASON=X'00E40347' DB2 2
No new posts REASON 00D70014 in load utility DB2 6
No new posts REXX code to expand copybook in a cob... CLIST & REXX 2
Search our Forums:

Back to Top