User code = 4000 
Author Message
 User code = 4000

We're getting

IBM004I PROGRAM TERMINATED, USER CODE = 4000
   AT OFFSET +0000E0                    
   IN PROCEDURE WITH ENTRY CHECK_FILES  

on one of our programs.  It occurs on a read-with-key of the form:
   READ FILE(X) INTO(Y) KEY(Z);
It is apparently _not_ associated with a KEY condition; the sought
record exists.  We can't be absolutely certain, however, since _no_ ON
units are entered.  It happens after approximately 3,000,000 similar
operations.

If it were a large program I could understand why "program management"
was getting fussy, but it's only 297 lines (including comments).
And I was always poor-to-atrocious at dump reading.   Any suggestions
other than a dump-reading class?   Production is looking to have the
problem fixed on something of an expedited basis...

Frank Clarke
Tampa Area REXX Programmers' Alliance
REXX Language Assn
Join us at www.rexxla.org



Wed, 30 Jun 2004 12:29:54 GMT  
 User code = 4000

Quote:

> IBM004I PROGRAM TERMINATED, USER CODE = 4000
>    AT OFFSET +0000E0                    
>    IN PROCEDURE WITH ENTRY CHECK_FILES  

> on one of our programs.  It occurs on a read-with-key of the form:
>    READ FILE(X) INTO(Y) KEY(Z);
> It is apparently _not_ associated with a KEY condition; the sought
> record exists.  We can't be absolutely certain, however, since _no_ ON
> units are entered.  It happens after approximately 3,000,000 similar
> operations.

> If it were a large program I could understand why "program management"
> was getting fussy, but it's only 297 lines (including comments).
> And I was always poor-to-atrocious at dump reading.   Any suggestions
> other than a dump-reading class?   Production is looking to have the
> problem fixed on something of an expedited basis...

1.  What does the manual say for UC=4000 ?
2.  Are SUBSCRIPTRANGE, STRINGRANGE, STRINGSIZE enabled?
3.  Enable STMT / GOSTMT etc.

- Show quoted text -

Quote:
> Frank Clarke
> Tampa Area REXX Programmers' Alliance
> REXX Language Assn



Wed, 30 Jun 2004 14:50:27 GMT  
 User code = 4000


Quote:
>1.  What does the manual say for UC=4000 ?

It says that "program management" got confused.

Quote:
>2.  Are SUBSCRIPTRANGE, STRINGRANGE, STRINGSIZE enabled?

No, but they will be.   Thanx for the suggestion.

Quote:
>3.  Enable STMT / GOSTMT etc.

Why?    Could this alter the behavior of the program other than with
respect to the messages it delivers?

Frank Clarke
Tampa Area REXX Programmers' Alliance
REXX Language Assn
Join us at www.rexxla.org



Thu, 01 Jul 2004 10:42:34 GMT  
 User code = 4000
User abend 4000 means that your code is "overwriting control information
used by the error handling routines".
1) Enable all program check conditions, esp. SUBSCRIPTRANGE
2) I would have said take a dump, but you've already done that. So yes,
taking a dump-reading course is a good idea.
3) Get hold of the "Problem Determination Guide"; since this is "licensed
material" you probably won't find it on the web.

Given that it's production code, I guess you're talking "old code" that's
just stopped working. If so, I need some details:
1) Where's it running: MVS, TSO, CICS, IMS?
2) Which compiler, etc.
3) What has changed recently: MVS version, LE version, compiler version?

Go back to your Link-Edit JCL and verify it _very_ carefully. Make
absolutely sure you have not included any of the PL/I or LE runtime
libraries on the SYSLIB. If you have, remove and relink. If you're not sure,
paste the link JCL here..


Quote:
> We're getting

> IBM004I PROGRAM TERMINATED, USER CODE = 4000
>    AT OFFSET +0000E0
>    IN PROCEDURE WITH ENTRY CHECK_FILES

> on one of our programs.  It occurs on a read-with-key of the form:
>    READ FILE(X) INTO(Y) KEY(Z);
> It is apparently _not_ associated with a KEY condition; the sought
> record exists.  We can't be absolutely certain, however, since _no_ ON
> units are entered.  It happens after approximately 3,000,000 similar
> operations.

> If it were a large program I could understand why "program management"
> was getting fussy, but it's only 297 lines (including comments).
> And I was always poor-to-atrocious at dump reading.   Any suggestions
> other than a dump-reading class?   Production is looking to have the
> problem fixed on something of an expedited basis...

> Frank Clarke
> Tampa Area REXX Programmers' Alliance
> REXX Language Assn
> Join us at www.rexxla.org



Thu, 01 Jul 2004 17:01:06 GMT  
 User code = 4000

Quote:


> >1.  What does the manual say for UC=4000 ?
> It says that "program management" got confused.

> >2.  Are SUBSCRIPTRANGE, STRINGRANGE, STRINGSIZE enabled?
> No, but they will be.   Thanx for the suggestion.

> >3.  Enable STMT / GOSTMT etc.
> Why?    Could this alter the behavior of the program other than with
> respect to the messages it delivers?

It goes hand-in-hand with item 2.  You indicated that
you didn't like looking at dumps.
Quote:
> Frank Clarke



Thu, 01 Jul 2004 20:47:02 GMT  
 User code = 4000

Quote:



> >1.  What does the manual say for UC=4000 ?
> It says that "program management" got confused.

> >2.  Are SUBSCRIPTRANGE, STRINGRANGE, STRINGSIZE enabled?
> No, but they will be.   Thanx for the suggestion.

> >3.  Enable STMT / GOSTMT etc.
> Why?    Could this alter the behavior of the program other than with
> respect to the messages it delivers?

It goes hand-in-hand with No. 2.  You said that you did not like looking
at dumps.
Quote:

> Frank Clarke



Fri, 02 Jul 2004 16:01:36 GMT  
 User code = 4000

Quote:



>>1.  What does the manual say for UC=4000 ?
>It says that "program management" got confused.
>>2.  Are SUBSCRIPTRANGE, STRINGRANGE, STRINGSIZE enabled?
>No, but they will be.   Thanx for the suggestion.
>>3.  Enable STMT / GOSTMT etc.
>Why?    Could this alter the behavior of the program other than with
>respect to the messages it delivers?

The PL/I tradition is that it puts BCR 15,0 instructions before
each statement.  This is a serialization operation on pipelined CPU's
so that there is no overlap of execution between statements.  This
could alter the behavior of some programs.

-- glen



Fri, 02 Jul 2004 12:22:18 GMT  
 User code = 4000
On Sun, 13 Jan 2002 10:01:06 +0100, "Mark Yudkin"

Quote:

>1) Enable all program check conditions, esp. SUBSCRIPTRANGE

Bingo!   It was, in fact, an array being overfilled.... several
statements away from the locus of the 'failure'.   The
programmer-victim (not me, thank goodness!) thanks you and I thank
you.   In 31 years of writing PL/1 I have never (as far as I can
recall) seen this.  Perhaps I was more careful than the average bear
about doing my own subscript-checking.  Perhaps I have just been
luckier than I deserve.

Now that I re-read my boastful postful, I _do_ seem to recall this one
IMS DB/DC program which overflowed its banks to the extent that it
took down several adjoining tasks beside itself...

Frank Clarke
Tampa Area REXX Programmers' Alliance
REXX Language Assn
Join us at www.rexxla.org



Sat, 03 Jul 2004 08:16:23 GMT  
 
 [ 8 post ] 

 Relevant Pages 

1. Printing to Canon 4000 Series--How to change orientation

2. CANON 4000 laser printer

3. FS; Jupiter Ace 4000

4. Adtech AX 4000

5. Find Driver for ADAMS 4000 series

6. Intel SatisFAXition 4000 - 4 port fax/modem

7. How do I run 4000 series ADAM Modules in LabView

8. renaming 4000+ files

9. CosmoPlayer and Fire GL 4000 do not work together

10. Resetting problem on Xilinx 4000 series

11. Is 4000 a leap year?

12. the year 4000 problem

 

 
Powered by phpBB® Forum Software