Brian:
I'm still not sure what type of safeguard you gain from using *prv.
If your binding language was this:
STRPGMEXP PGMLVL(*CURRENT)
EXPORT SYMBOL(IFS_Proc1)
EXPORT SYMBOL(IFS_Proc2)
ENDPGMEXP
And you change it to this:
STRPGMEXP PGMLVL(*CURRENT)
EXPORT SYMBOL(IFS_Proc1)
EXPORT SYMBOL(IFS_Proc2)
EXPORT SYMBOL(IFS_Proc3)
ENDPGMEXP
STRPGMEXP PGMLVL(*PRV)
EXPORT SYMBOL(IFS_Proc2)
EXPORT SYMBOL(IFS_Proc1)
ENDPGMEXP
Yes, the existing program will get signature error. But this signature
error is a false signature error. The existing program would have
executed without any problem. So, under this condition, you would have
to correct the *prv section of binding language and recreate the
service program or recompile the existing program for no real reason.
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Brian Johnson
Sent: Wednesday, February 13, 2008 3:41 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: Processes after CRTSRVPGM
On Feb 13, 2008 3:07 PM, Lim Hock-Chai <Lim.Hock-Chai@xxxxxxxxxxxxxxx>
wrote:
Yes. Sort of. However, if you exam it a bit more, it really makes no
different between the static signature method and the *prv/*current
signature method. Both methods require you to export new procedure to
the end of the service program. Otherwise, unpredictable result will
occur.
So, if you do below, existing program (Compiled before the *current
was
added) will not get signature violation but it will still execute the
wrong procedure. ==> *prv/*current method does not really buy you
anything (Actually it is more trouble than it worth).
Well, that's true. Not many techniques will buy you anything if you
don't use them correctly.
The only way around the rule to add new exports to the end of the list
is to rebind all client programs.
The value of a generated signature comes from the fact is generated from
the ordered list of exported names. If you make a mistake constructing
the *PRV signature you *will* find out quickly when you attempt to
active a user of the *PRV signature that has not been rebound. If you
specify the the signature, you loose this safeguard and you get to debug
strange and wonderful new bugs.
--
Brian Johnson
brian.johnson.mn@xxxxxxxxx
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.