On Thu, Feb 14, 2008 at 12:27 PM, Scott Klement <rpg400-l@xxxxxxxxxxxxxxxx>
wrote:
Mark,
The signature on a service program does NOT work like a level check on a
file. Using *CURRENT/*PRV with a generated signature does NOT detect
ANY additional errors over using a hard-coded signature.
If you're using a *CURRENT block *WITHOUT* using a *PRV block (but still
using a generated signature) then it does offer some protection, but
throws away one of the biggest values of ILE -- because now every time
you change the procedures that are exported from the service program,
you have to recompile everything.
recreate, not recompile. That is a big difference in that you can use
UPDPGM and UPDSRVPGM, with module(*NONE) and SRVPGM limited to the single
service program which you have changed the exports of. That prevents any
unwanted source code and module changes from being applied to your
production programs.
The downside of running UPDPGM and UPDSRVPGM after the SRVPGM is created
with its exports reordered is you are exposed during the period of time
after the SRVPGM is created and UPDPGM is run.
There are two reasons I dont like adding new procedures to the end of the
binding source. The first is cosmetic. I use the binding source as a
document for finding the procedure I am looking for. For that purpose, I
want the names listed alphabetically. The 2nd is practical. Most as400
programmers dont understand ILE and service programs. In a shop where more
than a single person adds procedures to a srvpgm, there is no protection
that someone with a little knowledge will place the new export in its
logical, alphabetical location in the binding source and CRTSRVPGM. That
reorders the exports, the calls into the SRVPGM run without detecting the
fact that the wrong procedure is being called, and all sorts of havoc can
result.
In the end, difficult tradeoffs have to be made. You likely have to hardcode
the signature and place new exports at the end of the binding source. Then
company management has to hope that whoever they hire to code their
applications will know how to properly add an export to a SRVPGM.
-Steve
As an Amazon Associate we earn from qualifying purchases.