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



Mark,

I believe David was doing this intentionally to understand what
happens when you do it wrong. Take a look at Barbara's message that
David provided the link too.

Charles


On Wed, Jan 12, 2011 at 11:24 AM, Mark S. Waterbury
<mark.s.waterbury@xxxxxxxxxxxxx> wrote:
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.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.