View previous topic :: View next topic
|
Author |
Message |
apandey
New User
Joined: 31 Aug 2009 Posts: 73 Location: Mumbai
|
|
|
|
Hi All,
I ran a production code for a testing but havent changed anything in code, but i m getting a System Completion Code=0C1(S0C1) abend for below statement.
---------------------------------------------------------------------------
-3 000870*==========================================================
-2 000880 1000-INITIALIZE.
-1 000890*==========================================================
000431 000900*****EXEC SQL
000432 000910***** SET :WS-PREV-COLLID = CURRENT PACKAGESET
000433 *****END-EXEC
000434 MOVE 'CURRENT PACKAGESET'
000435 TO SQL-TEMP
000436 PERFORM SQL-INITIAL UNTIL SQL-INIT-DONE
000437 CALL 'DSNHLI' USING SQL-PLIST2
+1 000940 MOVE 'PIC' TO WS-CURR-COLLID
+2 000960*****EXEC SQL
+3 000970***** SET CURRENT PACKAGESET = :WS-CURR-COLLID
+4 *****END-EXEC
+5 PERFORM SQL-INITIAL UNTIL SQL-INIT-DONE
-----------------------------------------------------------------------------------------
I m getting this abend at above line no 437, marked in bold.
Can any pls let me know how to solve this abend. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
make sure that the linkage editor resolves/has resolved the reference to dsnhli!
the best source of help in this case is Your support,
if You have used he standard <build> procedure the need to involve them is more than strong |
|
Back to top |
|
|
apandey
New User
Joined: 31 Aug 2009 Posts: 73 Location: Mumbai
|
|
|
|
Hi Enrico,
thanks for suggestion, now that abend is resolved coz i havent given below library " DSN=TSYS.DSNLOAD,DISP=SHR " in STEPLIB.
but now i m getting S0C4 abend in my next step at below line
WRITE OUT-RPT-REC FROM DISP-BLANK-LINE
Now this output file is opened, written and closed properly.
here is few info.
Line #
------
-5 005130 END-IF.
-4 005160 MOVE CUR-IN-LOC-CODE TO PRV-IN-LOC-CODE.
-3 005170 PERFORM 2000-READ-FILE-PARA THRU 2000-EXIT.
-2 005200 3000-EXIT.
-1 005210 EXIT.
000524 005230 0000-DISP-BLANK-LINE.
000525 005240 WRITE OUT-RPT-REC FROM DISP-BLANK-LINE.
+1 005260 0000-DISP-EXIT.
+2 005270 EXIT.
+3 005290 3100-PRINT-HEADER.
+4 005310 ACCEPT HOLD-CURRENT-DATE FROM DATE.
+5 005330 MOVE HOLD-DD TO TEMP-DD.
Source
Line #
------
000088 000880 01 OUT-RPT-REC PIC X(133).
000217 002160 01 DISP-BLANK-LINE PIC X(133) VALUE SPACES. |
|
Back to top |
|
|
apandey
New User
Joined: 31 Aug 2009 Posts: 73 Location: Mumbai
|
|
|
|
again this is production code where i have just compiled and submitted.
Havent changed anything to code. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Any mesages? Do you have a DD statement for the output in your JCL?
From what you have posted, the program looks to be badly structured (I'm assuming you are not the original author).
It is performing 2000 from within 3000, and 0000 follows 3000 and preceeds 3010.
However, if it is from production, initially it is probably the JCL. |
|
Back to top |
|
|
apandey
New User
Joined: 31 Aug 2009 Posts: 73 Location: Mumbai
|
|
|
|
Hi Bill,
Yes i m not the original author of this code..!!
Below is sysout:
STATUS CODE FOR LOC/TID FILE 00 -> Status code of input file
STATUS CODE FOR O/P REPORT 00 -> Status code of output file
CEE3204S The system detected a protection exception (System Completion Code=0C4 From compile unit BPIC210A at entry point BPIC210A at statement 525 at entry offset +00001404 at address 1E101764.
Here is the JCL:
000209 //*******************************************************
000210 //STEP08 EXEC PGM=BPIC210A
000211 //STEPLIB DD DSN=APPL.ODDC.PROD.LOADLIB,DISP=SHR
000212 //*
000213 //SYSIN DD DSN=APPL.ODDC.PROD.PARMLIB(CPIC210C),
000214 // DISP=SHR
000215 //*
000216 //SORSIN1 DD DSN=TPROD.BPIC210Z.C19.REPORT.INFILE.PRD,
000217 // DISP=SHR
000218 //SORSRPT1 DD DSN=TPROD.BPIC210Z.C19.REPORT.OUTFILE.PRD,
000219 // DISP=(NEW,CATLG,DELETE),
000220 // UNIT=DISK,SPACE=(136,(15,6),RLSE),
000221 // DCB=(LRECL=133,BLKSIZE=23408,RECFM=FBA)
000222 //*
000223 //SYSABOUT DD SYSOUT=*
000224 //SYSOUT DD SYSOUT=* |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
No messages from log or JCL?
Double-check SORSRPT1 is correct (without messages, it should be, but check).
What are you trying to do with this? It is possible that you now have some combination of input/database which has uncovered something which makes the program not work, like trying to print the blank line after the file is closed. |
|
Back to top |
|
|
apandey
New User
Joined: 31 Aug 2009 Posts: 73 Location: Mumbai
|
|
|
|
I made just 1 change in JCL and program executed.
In the JCL,
000219 // DISP=(NEW,CATLG,DELETE),
000220 // UNIT=DISK,SPACE=(136,(15,6),RLSE),
000221 // DCB=(LRECL=133,BLKSIZE=23408,RECFM=FBA)
I have changed
000219 // DISP=(NEW,CATLG,DELETE),
000220 // UNIT=DISK,SPACE=(CYL,(15,6),RLSE),
000221 // DCB=(LRECL=133,BLKSIZE=23408,RECFM=FBA) |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Good for you.
What is the DD in production?
Were there any messages? |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
USE the CODE tags............... |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
S0C4 is protection exception, you get S0C4 from a user-written program and that makes things tough for a member of some Forum. The manauals says: (reason code=10)
Quote: |
This error is caused by one of the following:
A program that was running disabled attempted to reference storage while the page table for that storage was paged out. To correct the error, page-fix the storage before a program running disabled attempts to reference it.
* A program attempted to reference storage that had not been obtained. To correct the error, allocate the storage before attempting to reference it.
* A program running in a subspace attempted to reference storage that was not accessible to the subspace at the time of error. To correct the error, ensure that the program running in a subspace references only the storage assigned to that subspace, or storage that can be referenced by all subspaces. |
Are you sure, you've replicated the PROD perfectly, in your test environment for this program - not to get any abend? You, possibly, missing something very trivial but for sure, you are - try to check that out. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
is there data in : TPROD.BPIC210Z.C19.REPORT.INFILE.PRD ?
or is it an empty file? |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8697 Location: Dubuque, Iowa, USA
|
|
|
|
A S0C4 abend on a WRITE statement is usually because the file is not open -- you cannot reference a buffer that does not exist. It could have never been opened, or it could have been opened and closed, or the program logic "fell through" into the WRITE. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
apandey wrote: |
I made just 1 change in JCL and program executed.
In the JCL,
000219 // DISP=(NEW,CATLG,DELETE),
000220 // UNIT=DISK,SPACE=(136,(15,6),RLSE),
000221 // DCB=(LRECL=133,BLKSIZE=23408,RECFM=FBA)
I have changed
000219 // DISP=(NEW,CATLG,DELETE),
000220 // UNIT=DISK,SPACE=(CYL,(15,6),RLSE),
000221 // DCB=(LRECL=133,BLKSIZE=23408,RECFM=FBA) |
TS has gone away happy.
It is actually quite interesting, if accurately recorded. I wish he'd let us know about any messages, and what the production JCL looks like.
If a parameter in the JCL caused it, I'd have expected a message or two. If a parameter in the JCL caused it and no message, I'd call that a bug and report it. |
|
Back to top |
|
|
Akatsukami
Global Moderator
Joined: 03 Oct 2009 Posts: 1788 Location: Bloomington, IL
|
|
|
|
I'd guess that the S0C4 -- a deucedly difficult abend to resolve -- is being caused by a wild subscript or a bad pointer derived from production but not test data. If so, the TS may be back... |
|
Back to top |
|
|
|