× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



"and the program was recompiled.”

The most common cause for an explosion in a previously working program (if recompiling is _really_ all you ever did - is misdefined fields being used on calls - to programs or subprocedures.

Say that you have a field of 20 long that your code passes to a program/procedure that is expecting 40 characters. If that called routine moves data to that parm field then 20 bytes of something else in your program just got nuked. Perhaps in the past whatever was using that storage didn’t matter. But a change in the compiler’s allocation of storage has resulted in something that matters (possibly a pointer to the key list or something else RPG internals need) being in that spot in memory and now “boom”.

Check the lengths of ALL parameters passed out of this program all the way to their final destination.


On Mar 1, 2016, at 9:33 AM, Jeff Young <jyoung0950@xxxxxxxxx> wrote:

Charles,
This is not a new job.
The job has been running for a long time, and runs often during the day.
The only thing different is that one of the files used in this program has
had the format changed, and the program was recompiled.
That is when I started getting the error. The CL program calling it has
not been changed, and when run with the production program with the
original files, it works with no problems.

Jeff Young
Sr. Programmer Analyst

On Tue, Mar 1, 2016 at 9:22 AM, Charles Wilt <charles.wilt@xxxxxxxxx> wrote:

Are you doing any CALLs in the program?

Check the parms in the caller and callee programs.

You'll want to check all the way down the chain..
If this is PGMA
PGMA
-PGMB
-PGMC
-PGMD
-PGME
-PGMF

Check all of them...

Memory corruption can manifest itself very strangly.



On Tue, Mar 1, 2016 at 9:10 AM, Jeff Young <jyoung0950@xxxxxxxxx> wrote:

The fields in the KLIST are from another database file.
Debug while the job is still active shows all of the fields have the
proper
value.
The program accepts only one parm and that is not used in the key list.


Jeff Young
Sr. Programmer Analyst

On Mon, Feb 29, 2016 at 8:41 PM, aec <cfuture@xxxxxxxxxxx> wrote:

A missing pointer for a CHAIN means that the program does not yet have
the
pointer set for the value specified.

"Chain to a keyed file using database fields in the key list."

The phrasing seems to indicate you were using field names from the
keyed
file itself. If so, I'm guessing there's been no I/O on the file so
there's
been no pointer to the buffer area initialized.

I doubt the error is in QRNXIE, though, if that's an IBM program or
procedure.





On 2/29/16 4:50 PM, Jeff Young wrote:

All,
Receiving the following error in the job log:
Message . . . . : 5200 -
CALL
PGM(*LIBL/COUPS1) /* The CALL
command contains parameters
*/

MCH3601 Escape 40 02/29/16 16:40:35.834316
QRNXIE
QSYS *STMT QRNXIE QSYS *STMT
From module . . . . . . . . :
QRNXMSG
From procedure . . . . . . :
SetRepText
Statement . . . . . . . . . :
45

To module . . . . . . . . . :
QRNXMSG
To procedure . . . . . . . :
SetRepText
Statement . . . . . . . . . :
45

Message . . . . : Pointer not
set
for location referenced.
Cause . . . . . : A pointer
was
used, either directly or as a basing
pointer, that has not been
set
to
an address.
CPF9999 Escape 40 02/29/16 16:40:35.834481
QMHUNMSG *N COUPS1 T37REBATE *STMT
To module . . . . . . . . . :
COUPS1
To procedure . . . . . . . :
COUPS1
Statement . . . . . . . . . :
68000

Message . . . . : Function
check.
MCH3601 unmonitored by QRNXIE at statement
0000000045, instruction
X'0000'.

Cause . . . . . : An escape
exception message was sent to a program which
did not monitor for that
message.
The full name of the program to which the
unmonitored message was sent
is
QRNXIE QRNXMSG SetRepText. At the time the
message was sent the program
was
stopped at higher level language statement
number(s) 0000000045. If more
than
one statement number is shown, the
program was a bound program.
Optimization does not allow a single statement
number to be determined. If *N
is
shown as a value, it means the actual
value was not available.
Recovery .
. . : See the low level messages
previously listed to locate
the
cause of the function check. Correct any
errors, and then try the
request
again.
RNQ0222 Sender copy 99 02/29/16 16:40:35.840653
QRNXIE
QSYS *STMT QRNXIE QSYS *STMT
From module . . . . . . . . :
QRNXMSG
From procedure . . . . . . :
InqMsg

Statement . . . . . . . . . :
15

To module . . . . . . . . . :
QRNXMSG
To procedure . . . . . . . :
InqMsg

Statement . . . . . . . . . :
15

Message . . . . : Pointer or
parameter error (C G D F).
Cause . . . . . : RPG
procedure
COUPS1 in program T37REBATE/COUPS1 at



*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2....+....3
statement 068000 had an error
due
to
a pointer not being correctly set. The
cause of the error is most
likely
one of the following: -- A basing pointer
was not set. -- A procedure
pointer
was not set. -- The pointer was set, but
the object it referenced has
been
destroyed. -- A parameter was not passed
5761SS1 V6R1M0 080215 Job Log
S06B6D65 02/29/16 16:44:17 Page 31
Job name . . . . . . . . . . : ROUTE_INV User . . . . . .
:
VAIJY Number . . . . . . . . . . . : 502671
Job description . . . . . . : VAIJOBD Library . . . . .
:
QGPL
MSGID TYPE SEV DATE TIME
FROM
PGM
LIBRARY INST TO PGM LIBRARY INST
to the program containing the
procedure. -- A parameter was not passed to
the procedure by its caller
within
the program. -- A pointer offset was
greater than the size of the
space
the pointer was pointing to. Recovery .
. . : Check the job log for
more
information on the cause of the error and
contact the person responsible
for
program maintenance. Possible choices for
replying to message . . . . .
.
.
.
. . . . . . . : D -- Obtain RPG
formatted dump. S -- Obtain
system
dump. G -- Continue processing at *GETIN.
C -- Cancel. F -- Obtain full
formatted dump.
System is at V6R1M0
Last PTF TL64197
Yeah, I know it is way old, but there was never a problem like this
before.
The program was doing a Chain to a keyed file using database fields in
the
key list.

Any ideas?
The error appears to be in QRNXIE.


Jeff Young
Sr. Programmer Analyst


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Jon Paris

www.partner400.com
www.SystemiDeveloper.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.