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

CICS S0C1 Abend


IBM Mainframe Forums -> CICS
Post new topic   Reply to topic
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
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

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon Mar 02, 2015 12:58 pm
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
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

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Mon Mar 02, 2015 1:42 pm
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
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

Global Moderator


Joined: 21 Sep 2010
Posts: 3049
Location: NYC,USA

PostPosted: Mon Mar 02, 2015 11:13 pm
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: 2501
Location: Atlanta, Georgia, USA

PostPosted: Mon Mar 02, 2015 11:48 pm
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 View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CICS

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts ISAM and abend S03B JCL & VSAM 9
No new posts Calling an Open C library function in... CICS 1
No new posts How to 'Ping' a CICS region in JCL CICS 2
No new posts Parallelization in CICS to reduce res... CICS 4
Search our Forums:

Back to Top