|
You are using the PRV and CURRENT technique. Your old program that haswill
not been rebound is looking at the PRV version of binder source so it
call it just fine. The issue comes in when you are doing something likesymbol.
this....
STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('PNS338SP')
EXPORT SYMBOL(PROC1)
EXPORT SYMBOL(PROC2)
ENDPGMEXP
and then you change your binder source to this....
STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('PNS338SP')
EXPORT SYMBOL(PROC1)
EXPORT SYMBOL(PROC3)
EXPORT SYMBOL(PROC2)
ENDPGMEXP
Notice that the signature is the same, so the bound programs will be
looking at this new export list and expect PROC2 to be the second
Then it will fail and call PROC3 instead. You haven't done anythingwrong
yet, that's why its still working properly :Duse of the individual or entity to which it is addressed and may contain
Thanks
Bryce Martin
Programmer/Analyst I
570-546-4777
David FOXWELL <David.FOXWELL@xxxxxxxxx>
Sent by: midrange-l-bounces@xxxxxxxxxxxx
01/12/2011 11:06 AM
Please respond to
Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
To
Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
cc
Subject
RE: CRTSRVPGM
-----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.
--- This message (including any attachments) is intended only for the
--list
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
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 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.