View previous topic :: View next topic
|
Author |
Message |
CICS fan
New User
Joined: 03 Apr 2008 Posts: 82 Location: United States
|
|
|
|
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 |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
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 |
|
|
Akatsukami
Global Moderator
Joined: 03 Oct 2009 Posts: 1787 Location: Bloomington, IL
|
|
|
|
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 |
|
|
CICS fan
New User
Joined: 03 Apr 2008 Posts: 82 Location: United States
|
|
|
|
I got the offset as offset +00000736
How can I cross check with listing? |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Its all in the manuals. Maybe you can do some research yourself? |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
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 |
|
|
Akatsukami
Global Moderator
Joined: 03 Oct 2009 Posts: 1787 Location: Bloomington, IL
|
|
|
|
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 |
|
|
CICS fan
New User
Joined: 03 Apr 2008 Posts: 82 Location: United States
|
|
|
|
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 |
Wondering if it has to do with SUBSCRIPTRANGE? |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Line/statement on the compile listing, not on the source. |
|
Back to top |
|
|
CICS fan
New User
Joined: 03 Apr 2008 Posts: 82 Location: United States
|
|
|
|
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 |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1316 Location: Vilnius, Lithuania
|
|
|
|
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 |
|
|
Akatsukami
Global Moderator
Joined: 03 Oct 2009 Posts: 1787 Location: Bloomington, IL
|
|
|
|
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 |
|
|
CICS fan
New User
Joined: 03 Apr 2008 Posts: 82 Location: United States
|
|
|
|
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 |
|
|
|