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

Pl/1 oncode 310


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
CICS fan

New User


Joined: 03 Apr 2008
Posts: 82
Location: United States

PostPosted: Tue Oct 18, 2011 8:52 pm
Reply with quote

hello All

I am getting a IBM0482S ONCODE=310 The FIXEDOVERFLOW condition was raised. abend and the problem is the message is "From compile unit <prog-name> at entry point <prog-name>.
So if it is the prog name and not any field, what can be the cause?I am confused.
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: Tue Oct 18, 2011 9:06 pm
Reply with quote

That's just the name of the "compile unit" and the "entry point" in that "unit". You can, although probably not common these days, have more than one "entry point", but normally will be the same,

Have you got an "OFFSET" - that'd be the instruction you are looking for,
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1788
Location: Bloomington, IL

PostPosted: Tue Oct 18, 2011 9:09 pm
Reply with quote

The message does not attempt to identify the field, but the program and module in which the error occurred. If the message is "From compile unit FOO at entry point BAR", get a compile listing of FOO and look up the hex offset of the abend, relative to BAR, in the table of offsets; this will give the statement number where the error occurred.
Back to top
View user's profile Send private message
CICS fan

New User


Joined: 03 Apr 2008
Posts: 82
Location: United States

PostPosted: Tue Oct 18, 2011 9:14 pm
Reply with quote

I got the offset as offset +00000736
How can I cross check with listing?
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Tue Oct 18, 2011 9:30 pm
Reply with quote

Its all in the manuals. Maybe you can do some research yourself?
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: Tue Oct 18, 2011 9:37 pm
Reply with quote

Akatsukami wrote:
[...] get a compile listing of FOO and look up the hex offset of the abend, relative to BAR, in the table of offsets; this will give the statement number where the error occurred.


I've never seen a PL/I compile listing, but I'm prepared to guess taat if you look around at the "back" of the listing you'll find what you need. Maybe just a list of statement numbers with hex alongside them, maybe more, but that is it.
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1788
Location: Bloomington, IL

PostPosted: Tue Oct 18, 2011 9:49 pm
Reply with quote

CICS fan wrote:
I got the offset as offset +00000736
How can I cross check with listing?

Search on "TABLES OF OFFSETS". You'll find a table like:
Code:
             WITHIN PROCEDURE VDEF                                     
             CSECT Offset: 3008 : 0xBC0                               
                                                                       
OFFSET (HEX)             0            50            58            5C   
FILE:LINE              573           577           573           577   
                                                                       
OFFSET (HEX)           1A6           1E4           22A           268   
FILE:LINE              583           584           585           586   
                                                                       
OFFSET (HEX)           3A2           3E4           41E           42E   
FILE:LINE              591           592           593           592   
                                                                       
OFFSET (HEX)           478           47E           4BE           4E4   
FILE:LINE              597           599           600           601   

In one of lines labelled "OFFSET (HEX)", find the largest number within the procedure (identified by the entry point) that is less than or equal to X'00000736'. Under it is the line (or, if you're using an old compiler, the statement) number where the condition code is raised.
Back to top
View user's profile Send private message
CICS fan

New User


Joined: 03 Apr 2008
Posts: 82
Location: United States

PostPosted: Tue Oct 18, 2011 10:09 pm
Reply with quote

Thanks , thats a lot of good info. I am not good with PL/1 and struggling with this.

Following your instruction, I got these lines and is baffled:

This is the table:

70C 716 720 72A 736 73C 74E 752 752
151 152 153 154 155 156 157 158 159

So i get 155



Code:
/* EXTERNAL SUBROUTINES CALLED
/***************************************************************
%PAGE;==> this is 155
(SUBSCRIPTRANGE): SELPVAL:PROC OPTIONS(MAIN) REORDER;
/***************************************************************
/*
/*FILE DECLARATIONS
/*
/***************************************************************
DCL IVSELAT FILE RECORD SEQUENTIAL KEYED INPUT ENV(VSAM);
/* AAT
DCL ISSELDT FILE RECORD SEQUENTIAL INPUT;  /* TPFDATE
Code:



Wondering if it has to do with SUBSCRIPTRANGE?
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: Tue Oct 18, 2011 10:13 pm
Reply with quote

Line/statement on the compile listing, not on the source.
Back to top
View user's profile Send private message
CICS fan

New User


Joined: 03 Apr 2008
Posts: 82
Location: United States

PostPosted: Tue Oct 18, 2011 10:18 pm
Reply with quote

Ok, sorry, its the listing.

Code:
153   1  3          IF ERROR ¬= ''
THEN DO;
154   1  4            Q5_BAD = Q5_BAD + 1;
[b]155   1  4            Q5_OUT.SEL_DET.REASON = ERROR;[/b]
156   1  4            WRITE FILE (OSSELFA) FROM (Q5_OUT);
157   1  4          END;
158   1  3          ELSE DO;



Code:
Q5_BAD)FIXED BIN (31);



and

Code:
DCL 1 Q5_OUT UNALIGNED,
%INCLUDE SELIUSE;
03 ENDUSE CHAR (0);



reckon its the Q5_out?how can i increase it?
Back to top
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1306
Location: Vilnius, Lithuania

PostPosted: Wed Oct 19, 2011 12:12 am
Reply with quote

If a fixed bin (31) identifier incremented by 1 to count the errors exceeds 2,147,483,648, there is something rather more fundamentally wrong with your program....
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1788
Location: Bloomington, IL

PostPosted: Wed Oct 19, 2011 12:17 am
Reply with quote

Note that the Q5_OUT structure is defined in the SELIUSE copybook. You'll need for whatever procedures are in place in your shop for altering and promoting it, doing impact analysis, etc.
Back to top
View user's profile Send private message
CICS fan

New User


Joined: 03 Apr 2008
Posts: 82
Location: United States

PostPosted: Wed Oct 19, 2011 3:05 am
Reply with quote

the issue was with input data, no way it could have that much error count as pointed out by members here.

thank you all for your help.
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 -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts writing into VSAM indexed tabl in PL1... PL/I & Assembler 8
No new posts IBM0472S ONCODE=290 The INVALIDOP PL/I & Assembler 18
No new posts ONCODE=8094 from IRXLOAD CLIST & REXX 8
No new posts Undocumented ONCODE 8843? PL/I & Assembler 2
No new posts PLI RUN MESSAGE:ONCODE=8097 ABENDS & Debugging 5
Search our Forums:

Back to Top