Hi,
when calling a procedure in an other (service-)program the unique signature
of the service program (which contains the procedure) is copied into the
(service-)program object. The signature is calculated based on the number
and sequence of the exported procedures.
When adding a new procedure to your service program the signature will be
changed and you have to recreate all (service-)programs that call any
procedure from the changed service program otherwise your program fails at
the activation time (because the service program is no longer found).
To avoid this problems the binder language was introduced.
In your binder source you list all exported procedures.
It is possible to let the signature generate automatically or specify your
own signature.
When specifying your own signature, you do not have to recreate all
dependent programs or service programs, because the signature won't change.
(Assuming you don't change the signature for your service program in your
binding source!)
If the signature will be generated automatically (or if you change the
signature, for example by integrating the creation date), you should store
the previous exported procedures separately.
In this way 2 (or even more if there are multiple previous version)
signatures are generated and integrated in the service program.
It is also not possible to recreate all depended (service-)programs, because
the "old" and "new" signatures coexist in the service program. At activation
time the service program can be found independent which signature is stored.
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
-----Ursprüngliche Nachricht-----
Von: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] Im Auftrag von David FOXWELL
Gesendet: Monday, 28. September 2009 14:35
An: Midrange Systems Technical Discussion
Betreff: RE: Binder Source
-----Message d'origine-----
[mailto:midrange-l-bounces@xxxxxxxxxxxx] De la part de
Rick.Chevalier@xxxxxxxxxxxxxxx
You don't even need to use the export keyword to have a
procedure available within a service program. If a procedure
is only used within a service program I wouldn't even put the
export keyword on it.
Ah, I did not realise that at all. I like to keep my procedures short, and
an exported procedure is often cut up into small internal sub procedures.
However, putting EXPORT on the procedure, wouldn't that be a way of
indicating to another programmer which procedures were intended for export.
Also, would it be an idea to use EXPORT(*ALL) for testing?
Thanks.
As an Amazon Associate we earn from qualifying purchases.