Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

CICS S0C1 Abend

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS
View previous topic :: :: View next topic  
Author Message
krish2309

New User


Joined: 29 Jan 2014
Posts: 17
Location: Kuala Lumpur

PostPosted: Mon Mar 02, 2015 10:28 am    Post subject: CICS S0C1 Abend
Reply with quote

Hi

Got an S0C1 abend and offset show as 'FFFFFFFF'. I googled and could see the comments as Outside application program. Kindly please help to advise the procedure to resolve or identify the failing instructions.

I also referred the following URL to to resolve S0C1. they use R15 to identify failing instruction which has value but the register R15 has spaces(4040) which stops me to proceed further in the below abend.

http://cics.ufl.edu/asra0C1dump.html

-
Code:
PSW & REGISTERS AT TIME OF INTERRUPT
0PSW                078D1000   C0404042   00020001   40404800
0REGS 0-7           2B0844B0   2BF88090   2BF882BC   AB07BE98           2B084688   2B0846DC   2BFF4EFE   2BF8864C
0REGS 8-15          2BF88335   2B084440   2848D080   2BFF00D0           2BFF0468   2BF88028   AB07D020   40404040
-EXECUTION KEY      8

0000002C0   00000000 00000000 079025BB 2BFF0008  00000000 00000000 00000000 00000000   *................................*   2E4D9940
0000002E0   00000000 00000000 E3C3E2F0 F0F6F8F0  F0C3F161 C1D2C5C1 FFFFFFFF 00030781   *........XXX006800C1/AKEA.......a*   2E4D9960
000000300   00000000 00000000                                                          *........                        *   2E4D9980



LOAD PT.    NAME    ENTRY PT   LENGTH
2B07BE70  XXX00680  2B07BE70  0000E2A0


OFFSET   OFFSET  NAME                TYPE    LENGTH  DDNAME   SEQ  MEMBER     
                                                                             
              0  DFHEAI             CSECT        26  SYSLIB    11  DFHEAI     
     8        8     DFHEI1             LABEL                                 
                                                                             
             28  XXX00680           CSECT      AD20  SYSLIN    03  **NULL**   
Back to top
View user's profile Send private message

Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7223

PostPosted: Mon Mar 02, 2015 12:58 pm    Post subject: Reply to: CICS S0C1 Abend
Reply with quote

You've got spaces into registers. Most likely way that that happened is overwriting a Save Area with spaces.

Is it a COBOL-only, Assembler-only or mixed system?

Is this Production? What changed recently? If not, what were your recent changes?
Back to top
View user's profile Send private message
krish2309

New User


Joined: 29 Jan 2014
Posts: 17
Location: Kuala Lumpur

PostPosted: Mon Mar 02, 2015 1:16 pm    Post subject: Reply to: CICS S0C1 Abend
Reply with quote

Thank you Bill.

Application is mixed of COBOL and Assembler but the failed program is Assembler. It happened in production. This is one of recurring issue which recently assigned to me. I requested cics log for the issue happened in recent past.

Would you please suggest whether any options to fix/can proceed from the provided information
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7223

PostPosted: Mon Mar 02, 2015 1:42 pm    Post subject: Reply to: CICS S0C1 Abend
Reply with quote

OK, so since it is Assembler not COBOL, and actually looking at the registers, they mostly look "reasonable" so it is not (likely) an overwrite of a Save Area, but of an address (of a module, or a section of code in the program with a branch/return).

Register 14 should be the address which was last branched to, 15 should be the return address. From the PSW it looks like something branched to 15, which ran for a while and then died.

Find where Register 14 points to, then what code wants to do that branch. At that point you should see how space got into Register 15. That's assuming Register 14 is good :-)
Back to top
View user's profile Send private message
krish2309

New User


Joined: 29 Jan 2014
Posts: 17
Location: Kuala Lumpur

PostPosted: Mon Mar 02, 2015 4:47 pm    Post subject: Reply to: CICS S0C1 Abend
Reply with quote

Thank you Bill.

Let me check it on tomorrow and keep you posted.
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Mar 02, 2015 11:13 pm    Post subject: Reply to: CICS S0C1 Abend
Reply with quote

User Action:
Code:
Description:  An attempt was made to execute an invalid machine             
              instruction operation code.  The operation code is either     
              invalid or is for an instruction that is not available on     
              this CPU.                                                     
                                                                           
              This failure is usually due to a branch to an invalid storage
              location, as might occur in a load module with unresolved     
              external references, or when a branch to an address outside   
              of a program occurs. (Reason Code 1)                         
                                                                           
User Action:  Correct the program logic or construction error and resubmit 
              the job.  Possible causes for this abend include:             
                                                                           
              Amode was set to 24, but a branch was attempted to a         
               31-bit or (on z/OS) a 64-bit address                         
              In assembler, coding 'B R14' when you meant to code 'BR R14' 
              Subscript error occurred                                     
              "Clobbered" code; i.e., the executing program was             
               corrupted in virtual storage and then a branch was           
               performed into the corrupted code                           
              Tried to read a file that was not open                       
              Misspelled DDNAME followed by attempted I/O to same file     
              Error in parameters passed to subroutines                     
              Missing DD card followed by attempted I/O to same file       
              Recording mode was wrong, or density was incorrect           
              Bad load module, possible bad object deck in FORTRAN         
                (unresolved external references)                           
              Missing dimension statement                                   
              Same name for an array and a subroutine                       
              COBOL: subroutine prog ID was the same as the entry name     
                     tried to call within COBOL sort I/O procedure         
                     tried to call a subroutine which could not be found   
                     incomplete DCB for SORTIN file                         
                     using sort verb, DDNAME was not SORTOUT when the       
                       "giving" option was used.                           
                     executing sort-using after opening SORTIN file         
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2502
Location: Atlanta, Georgia, USA

PostPosted: Mon Mar 02, 2015 11:48 pm    Post subject: Reply to: CICS S0C1 Abend
Reply with quote

Is the Assembler sub-program "CALLED" (not LINKED-TO) from CICS/COBOL?

If it's a "CALLED" sub-program, is the storage reentrant and it's not program-storage (part of the load module)?

I've come across some wild abends, such as a S0C1 on a CLI instruction in a non-reentrant Assembler sub-program in a CICS environment and it left me scratching my head, until I realized the storage was non-reentrant.

Is the sub-program used in both Batch and CICS and in CICS, reentrant storage is not allocated by the sub-program nor passed as an additional parameter by reentrant CICS/COBOL (its own storage)?

If you need to know the run-environment, use the CICS Macro DFHAFCD TYPE=LOCATE (R15 is the default) at the start of the Assembler sub-program and if Rx is equal to F'0' or if zero-off Rx (for a length of 3) is not equal to 'AFC' then the run-environment is Batch. Otherwise, it's CICS.

Code:

         DFHAFCD TYPE=LOCATE,REG=Rx    GET RUN-ENVIRONMENT             
         LTR   Rx,Rx                   BATCH ENVIRONMENT?               
         BZ    NOTCICS                 YES, NOT CICS                   
         CLC   =CL3'AFC',0(Rx)         BATCH ENVIRONMENT?               
         BNE   NOTCICS                 YES, NOT CICS                   

HTH....
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts How does a called pgm know if its cal... Graeme Westerman COBOL Programming 4 Tue Nov 29, 2016 9:25 pm
No new posts IMS BMP program causes 878 system abend Artemk IMS DB/DC 7 Tue Nov 22, 2016 8:26 pm
No new posts CICS Roll back partially - Need to re... dwijadas CICS 4 Wed Nov 16, 2016 4:30 pm
No new posts CICS NEW SIT PARAMETERS CICS BEHAVIOR... Kyle Carroll CICS 0 Fri Nov 04, 2016 11:55 pm
No new posts abend sort based on count records in ... anatol DFSORT/ICETOOL 5 Mon Oct 17, 2016 10:10 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us