× 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.



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.

This thread ...

Follow-Ups:
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.