Hi, David:

This is because you have violated one of the "rules" of creating export binder source.

in effect, you "lied" to the system, pretending that your changes are "upwards compatible" between the various versions of the *SRVPGM ... When you use PGMLVL(*PRV), AFAIK, you must ensure that all of the procedures previously available are still supported, with compatible interfaces, in the same order or relative position ...

The idea is, you can add new procedures, but only at the end ... if you want to be "upward compatible" and use the PGMLVL(*PRV) support.

This is similar to the concept used on mainframes, S/36, S/38 or AS/400, etc., of adding new fields only to the end of the record, so that your existing programs could still access the file with LVLCHK(*NO) ...

Does that help?

All the best,

Mark S. Waterbury

> On 1/12/2011 11:06 AM, David FOXWELL wrote:
-----Message d'origine-----
De : midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] De la part de

Did you recompile "my program", the one calling P1 and P2?
If you did, then that's why it still called P2 as expected.
If you don't recompile "my program" and change the order of
the exported procedure in the binding language then you would
end up calling P3.

No, I haven't yet recompiled or rebound the programs.

Here's one binder source :

/* This is junkbndcur */
STRPGMEXP PGMLVL( *CURRENT ) SIGNATURE(*GEN)
EXPORT SYMBOL( "PROC1" )
EXPORT SYMBOL( "PROC3" )
EXPORT SYMBOL( "PROC2" )
ENDPGMEXP

STRPGMEXP PGMLVL( *PRV ) SIGNATURE(*GEN)
EXPORT SYMBOL( "PROC1" )
EXPORT SYMBOL( "PROC2" )
ENDPGMEXP

STRPGMEXP PGMLVL( *PRV ) SIGNATURE(*GEN)
EXPORT SYMBOL( "PROC1" )
ENDPGMEXP

If I look at SRVPGM junkbndcur, I see :
Signatures :

00000000000000000000F0E2C70D3D47
000000000000000000000F0E00437647
0000000000000000000000F1C3D6D9D7

In my program junkbndcur, I see :
Programme
de service Bibliothèque Activation Signature
JUNKSRVCUR *LIBL *IMMED 000000000000000000000F0E00437647

So you can see it is using the second version of the service program. Looking at the binder source, I would expect it to use PROC2 when it called PROC2, but call PROC3 instead of PROC2 if I recompile junkbndcur.

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.