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
 

 

Upgrading to PL/I enterprise compiler - S0C4

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & Assembler
View previous topic :: :: View next topic  
Author Message
fahir83

New User


Joined: 27 Jan 2006
Posts: 22

PostPosted: Tue Aug 04, 2009 2:18 am    Post subject: EnterPrise PL/1 while calling DSNTIAR
Reply with quote

We are in the process of upgrading to PL/I enterprise compiler. We compiled the programs we didnt have any issues, but when try to run the program, we got the error 8094.

In our program we are calling DSNTIAR for DB2 errros.

+IDI0081I IEWBIND unusual condition INCLUDE GGHADP87 rc=83000526
+IDI0002I Module GGHADP87, program GGHADP0, offset X'1842': Abend S0C4-X'4' (Protection Exception)
IBM0534S ONCODE=8094 Protection exception


the following is the call for DSNTIAR:

DCL DSNTIAR ENTRY OPTIONS(ASM,INTER,RETCODE);
0/* SQLCODE ERROR HANDLING AREA */
DCL 01 DB2_SQLR,
05 DB2_SQLR_TEXT_LEN FIXED BIN(31) INIT(120),
05 DB2_SQLR_MESSAGE,
10 DB2_SQLR_LEN FIXED BIN(15) INIT(960),
10 DB2_MSGS(08),
15 DB2_SQLR_TEXT CHAR(120) INIT((*)' ');
PUT SKIP LIST('SEVERE ERROR OR WARNING ENCOUNTERED');
PUT SKIP LIST('SQLCODE ====> ',SQLCODE);
PUT SKIP LIST('SQLERRM ====> ',SQLERRM);
PUT SKIP LIST('SQLERRD(3) ====> ',SQLERRD(3));
PUT SKIP LIST('SQLWARN0 ====> ',SQLWARN0);
PUT SKIP LIST('SQLWARN1 ====> ',SQLWARN1);
PUT SKIP LIST('SQLWARN2 ====> ',SQLWARN2);
PUT SKIP LIST('SQLWARN3 ====> ',SQLWARN3);
PUT SKIP LIST('SQLWARN4 ====> ',SQLWARN4);
PUT SKIP LIST('SQLWARN5 ====> ',SQLWARN5);
PUT SKIP LIST('SQLWARN6 ====> ',SQLWARN6);
PUT SKIP LIST('SQLWARN7 ====> ',SQLWARN7);
CALL DSNTIAR(SQLCA,DB2_SQLR_MESSAGE,DB2_SQLR_TEXT_LEN);
IF PLIRETV = 0
THEN
DO;
DO J = 1 TO DIM(DB2_SQLR_TEXT,1);
IF DB2_SQLR_TEXT(J) ¬= '' THEN
PUT SKIP LIST(DB2_SQLR_TEXT(J));
END;
END;
EXEC SQL
ROLLBACK;
SIGNAL ERROR;
END; /* P9999_DB2_ABEND */

Can anyone knows how can we resolve that?
Back to top
View user's profile Send private message

dejunzhu

Active User


Joined: 08 May 2008
Posts: 390
Location: China

PostPosted: Tue Aug 04, 2009 9:48 am    Post subject:
Reply with quote

I used to encounter a problem just like you mentioned.

This kind of issue is always due to link error.

My solution was :
1.change the link parameter of SCLM definition;
2.specify "NORENT" in the compile option.

You can have a try, although I cannot assure you it will work.
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10203
Location: italy

PostPosted: Tue Aug 04, 2009 2:07 pm    Post subject: Reply to: Upgrading to PL/I enterprise compiler - S0C4
Reply with quote

what is the program doing at...
program GGHADP0, offset X'1842' ??
exactly, please
Back to top
View user's profile Send private message
fahir83

New User


Joined: 27 Jan 2006
Posts: 22

PostPosted: Tue Aug 04, 2009 9:05 pm    Post subject:
Reply with quote

This is the error i am getting.Inside the procedure P9999_DB2_ABEND ,the above mentioned code is present.

IBM0534S ONCODE=8094 Protection exception
From compile unit GGHADP0 at entry point P9999_DB2_ABEND at compile unit offset -10E50350 at entry offset -10E51980 at address 20C05070.
Possible Bad Branch: Statement: Offset: -FFFFFE9E

dump for similar program:
================================================================================
<H2> EVENT 7 OF 14: CALL (DSA ADDRESS 000803A0)

********************************************************************************
*********************** P O I N T O F F A I L U R E **********************
********************************************************************************

This is the point where control left program GGHADP0 prior to the S0C4 abend.

NOTE: Source code information for program GGHADP0 could not be presented because
no compiler listing or side-file data sets were provided. The source file
is SYS09213.T070105.RA000.SGHSXG0F.ELMOUT.H01, line # from the GONUMBER
option is 674 for offset X'1842'.

Load Module Name. . . . . . : PGC01.GPDCM.TEST.LOAD(GGHADP87)
</RTline>
At Address. . . . . . . . : 31A55AA8
<XMline>
At Address. . . . . . . . : <a href="ADDR: 31A55AA8">31A55AA8</a>
</XMline>
<RTline>
Load Module Length. . . . : X'24558'
Link-Edit Date and Time . : 2009/08/01 07:01:16

Program Name. . . . . . . . : GGHADP0
</RTline>
At Address. . . . . . . . : 31A55D40 (Module GGHADP87 offset X'298')
<XMline>
At Address. . . . . . . . : <a href="ADDR: 31A55D40">31A55D40</a> (Module
GGHADP87 offset X'298')
</XMline>
<RTline>
Program Length. . . . . . : X'10FC8'
Program Language. . . . . : PL/I (Compiled using IBM Enterprise PL/I for z/OS
V3 R6 M0 on 2009/08/01 at 07:01:09)
Entry Point Name. . . . . : GGHADP0
At Address. . . . . . . : 31A55D90 (Program GGHADP0 offset X'50')

Machine Instruction . . . . : 05EF BALR R14,R15
At Address. . . . . . . . : 31A57582 (Program GGHADP0 offset X'1842')
AMODE . . . . . . . . . . : 31

Instructions around point of failure:

Offset Hex Instruction
------ -------------- --------------------------------------------------------
-2C 5820 600C L R2,12(,R6)
-28 5020 109C ST R2,156(,R1)
-24 5000 1098 ST R0,152(,R1)
-20 4100 1098 LA R0,152(,R1)
-1C 58F0 3F78 L R15,3960(,R3)
-18 4110 D098 LA R1,152(,R13)
-14 5000 D098 ST R0,152(,R13)
-10 05EF BALR R14,R15
-E 4400 C1AC EX 0,428(,R12)
-A 185D LR R5,R13
-8 58F0 3F80 L R15,3968(,R3)
-4 4400 C1C0 EX 0,448(,R12)
***** 05EF BALR R14,R15
+2 4400 C1C4 EX 0,452(,R12)
+6 4400 C1AC EX 0,428(,R12)
+A 185D LR R5,R13
+C 58F0 3F84 L R15,3972(,R3)
+10 4400 C1C0 EX 0,448(,R12)
+14 05EF BALR R14,R15
+16 4400 C1C4 EX 0,452(,R12)



<H2> EVENT 8 OF 14: ABEND S0C4

Abend Code. . . . . . . . . : S0C4-X'4'
Program-Interruption Code . : 0004 (Protection Exception)
An attempt was made to access a protected storage
location using an incorrect storage access key.

Machine Instruction . . . . : n/a
At Address. . . . . . . . : 008D15FE
AMODE . . . . . . . . . . : 24
Failure Description . . . : Instruction address is invalid

Additional instructions around event offset:

Offset Hex Instruction
------ -------------- --------------------------------------------------------
No instructions available.

Program Status Word (PSW) . : 00000000 078D1600
General Purpose Registers:
</RTline>
R0: 31A55C30 (115848144 bytes of storage addressable)
<XMline>
R0: <a href="ADDR: 31A55C30">31A55C30</a> (115848144 bytes of storage
addressable)
</XMline>
R1: 0000CE2C (643540 bytes of storage addressable)
<XMline>
R1: <a href="ADDR: 0000CE2C">0000CE2C</a> (643540 bytes of storage
addressable)
</XMline>
R2: 00002DF0 (Storage invalid)
<XMline>
R2: <a href="ADDR: 00002DF0">00002DF0</a> (Storage invalid)
</XMline>
R3: 31A5F002 (115810302 bytes of storage addressable)

My bad i am not sure how can i check what the exact statement in offset X'1842'.
Back to top
View user's profile Send private message
Terry Heinze

JCL Moderator


Joined: 14 Jul 2008
Posts: 1238
Location: Richfield, MN, USA

PostPosted: Tue Aug 04, 2009 9:22 pm    Post subject:
Reply with quote

According to what you posted it's:
Quote:
Machine Instruction . . . . : 05EF BALR R14,R15
At Address. . . . . . . . : 31A57582 (Program GGHADP0 offset X'1842')
AMODE . . . . . . . . . . : 31
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7914
Location: Bellevue, IA

PostPosted: Tue Aug 04, 2009 9:26 pm    Post subject:
Reply with quote

Quote:
My bad i am not sure how can i check what the exact statement in offset X'1842'.
The Enterprise PL/I Programming Guide manual (link at the top of the page) says you can get this by compiling with the LIST, OFFSET, or MAP options.
Back to top
View user's profile Send private message
fahir83

New User


Joined: 27 Jan 2006
Posts: 22

PostPosted: Fri Aug 07, 2009 7:40 am    Post subject:
Reply with quote

Here we go.

I found the place where it throws the error. It is a open cursor statement.

EXEC SQL
OPEN BRANCH_CUR;

When i look into the DB2 Logs, it says

08/06 18.07.20 D2T2MSTR DSN3201I -D2T2 ABNORMAL EOT IN PROGRESS FOR USER=SGMYKG0 CONNECTION-ID=BATCH CORRELATION-ID=
D2T2MSTR JOBNAME=MRLBSC35 ASID=0225 TCB=008A2E88

and if we look at my first post, the first line of the error messge is

IDI0081I IEWBIND unusual condition INCLUDE GGHADP87 rc=83000526

When i serached for DSN3201I, it says
Explanation:During converting load module format, IEWBIND
function had return code greater than 0.

And i found in compiler messages, eventhough return code of BIND is 0, i found BINDKTSO...... RC=0005. i dont understand what it is

Can you please help me in getting this resolved. Whether i need to rebind it with some options changed.FYI we are using endevor.

The one parameter which has been changed in BIND option from old compiler to new compiler is CURRENTDATA which was previously set to YES, now we have set to NO to comply with default.

Another thought: Whether it is because of some PLAN AUTHORIZATION error, in prev compiler, it will clearly shows PLAN AUTHORIZATION error, but i dont know whether it will be the case. i seriously dont think so.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Fri Aug 07, 2009 7:51 am    Post subject:
Reply with quote

Hello,

Suggest you look in the output of the pre-compiler/compiler steps for some innocent appearing warning and the output from the bind.

Quote:
And i found in compiler messages, eventhough return code of BIND is 0, i found BINDKTSO...... RC=0005.
Which step issued the rc=05?
Back to top
View user's profile Send private message
fahir83

New User


Joined: 27 Jan 2006
Posts: 22

PostPosted: Fri Aug 07, 2009 8:02 am    Post subject:
Reply with quote

processor.

PROCESSOR....... P4PXD2GE
CLEANUP....... RC=0000
....
SCAN1......... RC=0001
SCAN2......... RC=0001
COMPILE....... RC=0004
LINK.......... RC=0000
DBRMCOPY...... RC=0000
BINDALW1...... RC=0000
......
......
BINDKTSO...... RC=0005
EXPLMODB...... RC=0000
EXPL.......... RC=0000
BINDMODB...... RC=0000
BIND.......... RC=0000
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Fri Aug 07, 2009 8:09 am    Post subject:
Reply with quote

Hello,

I'm not familiar with BINDKTSO icon_confused.gif It sounds like something site-specific.

If it issued an rc other than zero, there is probably some diagnostic/informational info created by the process.

Suggest you talk with the people who support the compile/bind processes.
Back to top
View user's profile Send private message
fahir83

New User


Joined: 27 Jan 2006
Posts: 22

PostPosted: Fri Aug 07, 2009 9:36 am    Post subject:
Reply with quote

i got the following code in SYSTSPRT. I know that it will be thrown in many cases. But any thought what could be the issue if combine this error message with the ones i have mentioned above?

READY
DSN SYSTEM(D2T2)
DSN
RUN PROG(GGHADP87) PLAN(PTHADP87)
IKJ56641I DSN ENDED DUE TO ERROR+
IKJ56641I SYSTEM ABEND CODE 0C4 REASON CODE 00000004
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Fri Aug 07, 2009 9:43 am    Post subject:
Reply with quote

Hello,

Quote:
KJ56641I DSN ENDED DUE TO ERROR+
IKJ56641I SYSTEM ABEND CODE 0C4 REASON CODE 00000004

Quote:
I know that it will be thrown in many cases.
I surely hope not. . .

An 0C4 should basically never happen. . .

Suggest you make sure there are no unresolved references in any of the linkedits for any of the modules used in this run.
Back to top
View user's profile Send private message
fahir83

New User


Joined: 27 Jan 2006
Posts: 22

PostPosted: Wed Aug 12, 2009 8:12 pm    Post subject: Reply to: Upgrading to PL/I enterprise compiler - S0C4
Reply with quote

Issue Resolved.

In Old compiler, the programs were linked using DSNELI for running under TSO (IKJEFT01). But in new compiler, the programs are linking using DSNHLI which is for running using the CAF facility. Endevor team has corrected the issue by setting the LDB2LNG symbolic to DSNELI.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Wed Aug 12, 2009 11:59 pm    Post subject: Reply to: Upgrading to PL/I enterprise compiler - S0C4
Reply with quote

Good to hear it is working - thanks for posting the resolution icon_smile.gif

d
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 -> PL/I & Assembler All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Any docs / links for isub- cobol comp... SRICOBSAS COBOL Programming 4 Fri Aug 26, 2016 2:35 pm
No new posts Problem Compiling cobol code with Cob... amitc23 COBOL Programming 2 Wed Aug 24, 2016 1:50 pm
No new posts COBOL compiler upgrade vicky10001 COBOL Programming 4 Mon Jul 25, 2016 1:44 pm
No new posts Compiler option for override the exte... muralikrishnan_new COBOL Programming 9 Fri Jul 08, 2016 12:09 pm
No new posts CEXEC not able to execute if no SLINE... boyti ko CLIST & REXX 2 Wed Apr 13, 2016 4:31 pm


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