|
Re your pointer usage.
For future reference you might want to consider either:
a) Also passing a length for the variable as well as the pointer. That
would allow you to define a generic large field for mapping purposes and to
use %Subst to address the variable to be processed. i.e. for parm1 and
parm1_len it would be %Subst( parm1 : 1 : parm1_len ). This avoids any
possibility of the kind of corruption you experienced. Even for the current
approach it would be safer to use template fields and always use them to
define the parms with LIKE. less likely for some maintenance programmer to
screw up in the future.
b) Another approach which I have used in the past for this kind of
scenario is to use variable length fields. That way RPG will effectively do
the %Subst for you and you can always directly interrogate the length
passed if you ever needed it.
I appreciate that you might be past this point by now but for the benefit
of others reading this thread later it might be useful.
Jon Paris
On May 12, 2021, at 12:53 AM, Suren K <suren7437@xxxxxxxxx> wrote:the
Hi Jon,
I customized based on my application and made some generic logic inside
Parser, like Data truncation validation, Data type mismatch validationsand
data translation like Male to M/Female to F... All these customizationwill
work based on my application configurations...wrote:
Regards,
Suren
On Wed, May 12, 2021, 4:13 AM Jon Paris <jon.paris@xxxxxxxxxxxxxx>
Service
Glad you got it sorted.
Can we ask what customizations you have made? Do they offer additional
features that the rest of us could benefit from?
On May 11, 2021, at 3:20 PM, Suren K <suren7437@xxxxxxxxx> wrote:
Hi All,
Identified the Issue.
I customized Skott Klements Parser YAJLINTO and named it as PARSERINTO.
Also passed extra values as input in the user parameter portion of
DATA-INTO opcode.
The issue here is, the user parameter value length defined in the
parameterprogram module (DATA-INTO) is 9500 Character, and the same user
aspointer is mapped to an work variable in the customized parser program
whose length is 10000 character. These two are not in sync.
When I changed the user parameter length in the Service program module
for10000 Character, it worked fine:)!!!issue:).
Special thanks to Mark and Jon for helping me out to identify the
wrote:
Regards,
Suren
On Tue, May 11, 2021 at 8:05 PM Jon Paris <jon.paris@xxxxxxxxxxxxxx>
due
In that case my best guess is that the data/pointer is being corrupted
1000to a length mismatch somewhere along the line.
As to the pointers - you could deal with it without pointers by simply
using varsize as a parameter option. But I see why you did it.
So you are passing these pointers by value?
Jon
On May 11, 2021, at 12:53 AM, Suren K <suren7437@xxxxxxxxx> wrote:
Hi Jon,
I have verified the pointer parameters value using EVAL P00_OutPtr:c
in debug mode. All the pointers have valid values.
This is a skeleton program, which I will be using the same skeleton
forServiceevery new IWS transaction. All other services are working fine. I amfacing
the issue with this newly created transaction alone.
Why I used a pointer as a parameter, my transaction flow is like
IWSProgram -> Program B -> Program C -> Processing program. For all the
transactions Program B and Program C are common which will do somegeneric
processing and will send the JSON body parameter as is to the nextprogram
without touching.
So for some transactions JSON body will be of 1000 length data and
atthesome
20000 length data. So I passed as a pointer by allocating the size in
Service program and using the same size in the processing program fordoing
the process.wrote:
Regards,
Suren
On Tue, May 11, 2021 at 1:07 AM Jon Paris <jon.paris@xxxxxxxxxxxxxx>
debug.
Have you looked at the pointers to see if they are valid? The error
message would hint that one of them is not. Easy enough to see in
The fact that the explosion occurs during initialization would hint
looksbad
error-proofparms.
Not sure why you are passing pointers - not the most usual and
way of passing parms.
Jon Paris
On May 10, 2021, at 12:23 PM, Suren K <suren7437@xxxxxxxxx> wrote:
Hi Jon,
Wrk_Input is just a character field with length 10000.
Also, looks like the issue is not with the data-gen program, it
thevaluelike
some other issue. If I remove the data-gen code and move the JSON
as
a hard coded value, then I am getting the same set of errors with
jon.paris@xxxxxxxxxxxxxx>next
call program command.
Example,
// data-gen DS_Input %data(Wrk_Input:'doc=string countprefix=num_')
Commented this line
// %gen('YAJLDTAGEN');
P00_Header = Wrk_Header;
P00_InpPtr = %addr(Wrk_Input);
P00_ErrPtr = %addr(ED_Errors);
P00_WrnPtr = %addr(ED_Warnings);
P00_OutPtr = %addr(DS_Output);
// Call the Architecture Program to process the Request
Pr_PROGRAMA(P00_Header:P00_InpPtr:P00_WrnPtr:
P00_ErrPtr:P00_OutPtr:httpSts);
I am getting the below errors
Ownership of object FLDSPACE in QTEMP type *USRSPC changed.
Pointer not set for location referenced.
Error caused procedure PROGRAMA in program *LIBL/PROGRAMA to stop
during initialization.
Regards,
Suren
On Mon, May 10, 2021 at 9:43 PM Jon Paris <
wrote:iswrote:
Where and how is Wrk_Input defined? Most obvious guess is that it
a
parm that is not actually being passed.
Jon Paris
On May 10, 2021, at 3:28 AM, Suren K <suren7437@xxxxxxxxx>
using
Hi All,
I am facing this weird issue which I am not able to identify
Service.the
directionjob
log. It will be more helpful if anyone points me in the right
to
identify the issue.
I created a Service Program which I will configure in IWS
theWhenever
a request comes from the External world this Service program is
DATA-INTOfirst
program which will be executed.
I am getting the input in JSON format and I am using the
affiliatestopand
generatingDATA-GEN opcodes in the Service program module for parsing and
the JSON.
Now, in the Service program module i have one of the below line
data-gen DS_Input %data(Wrk_Input:'doc=string countprefix=num_')
%gen('YAJLDTAGEN');
I am getting this error while executing this code,
Pointer not set for location referenced.
Error caused procedure _QRNI_GLOB in program LIBL/YAJLDTAGEN to
theduring initialization.
Error RNX8001 occurred while running the program or procedure for
affiliateaffiliateDATA-GEN operation.related questions.
Any response will be very much appreciated.
Regards,
Suren
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
Help support midrange.com by shopping at amazon.com with our
affiliaterelatedlink: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
questions.
Help support midrange.com by shopping at amazon.com with our
related questions.link: https://amazon.midrange.com--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
Help support midrange.com by shopping at amazon.com with our
affiliaterelatedlink: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
questions.
Help support midrange.com by shopping at amazon.com with our
related questions.link: https://amazon.midrange.com--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
Help support midrange.com by shopping at amazon.com with our
affiliaterelatedlink: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
questions.
Help support midrange.com by shopping at amazon.com with our
relatedrelated questions.link: https://amazon.midrange.com--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
link: https://amazon.midrange.com
Help support midrange.com by shopping at amazon.com with our affiliate
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
related questions.questions.--
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
link: https://amazon.midrange.com
Help support midrange.com by shopping at amazon.com with our affiliate
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.