Hi, Jim: This happens if you code in RPG/400 or RPGLE like this: CALL 'PGM001' versus: MOVEL 'PGM001' PGMNAM 10 CALL PGMNAMThis second case causes RPG to generate the full dynamic call that "resolves" to the name on each call. Note that there is more "overhead" for doing it this way.
For this reason (in order to reduce runtime overhead for needless re-resolving), when the name of the object called is known at compile-time, (the first case above), IBM compilers generate the code to do the "resolve" (issue RSLVSP MI instruction) in the "initialization" part of the *PGM, so this overhead is incurred just once, and from that point on, e.g. at the point of the CALL, a pointer to the *PGM is used (already resolved).
Hope that helps, Mark S. Waterbury > Jim Wiant wrote:
I've noticed a behaviour that I don't understand, and would like some clarification/explanation:The situation is program objects and library lists, and is set up asfollows:The library list includes LIB1 and LIB2. LIB1 is 1st in the list, LIB2is 2nd in the list.I have two programs that call a sub program. One is RPGLE, and calls thesub program with a simple CALL verb (not bound, etc.). The other program is a CLLE and again calls a sub program with a simple CALL verb. In both cases they make the call, sleep for a few seconds, and then loop and call the child again.The child program exists in LIB2. Both parent programs end up executingthe same object in LIB2 when started. So far so good..If I create a new child program with the same name and place it in LIB1(which is earlier in the library list) I get different behaviours from the 2 parent programs:The RPGLE code continues to execute the child from LIB2, ignoring theobject in LIB1. The CLLE code finds the new code in LIB1 and starts running it next time it loops.In both cases the parent process is started with a SBMJOB command withthe same job description and parameters.Why the difference? I expected the RPGLE parent program to be doingdynamic calls and it should pick up the new program object from the library earlier in the library list just like the CLLE does. I don't mind if the behaviour is consistent even if different between the languages, but I would like to understand why the difference and ifthere is any way to control it. Thanks all Jim WiantDeveloper Foodstuffs, Akl. Ltd.Fast is fine, but accuracy is everything. Earp, WyattThis message has been sent from Foodstuffs (Auckland) Limited ("Foodstuffs").The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any system and destroy any copies.The views and opinions expressed in this message may be thoseof the individual and not necessarily those of Foodstuffs, and are not given or endorsed by it.Please note that this communication does not designate an information system for the purposes of the Electronic Transactions Act 2002.
This mailing list archive is Copyright 1997-2013 by MIDRANGE dot 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 here. If you have questions about this, please contact