Several reasons, but  system calls to transient routines are the
most likely suspects. A lot depends on what "routines" the RPG
program requires. These programs remain "resident" for a few minutes
even after a program is terminated. These routines "stay" in memory
long enough to see if another call is going to made to them. If no
more calls occur or a certain time periods ends, they disappear.

At one point, if a routine was called at least seven times in a certain
time period, it would remain in main memory for a extended period
of time. The purpose was to reduce system overhead on program calls.

Another reason is the data path might be left open  and require almost
no overhead to "reopen" the data path.

(This info is based on the OPM which might not still be true)

Ray Nainy wrote:
> We have an RPG program that reads approximately 4500 records from
> file A and reads matching records in file B using account number.
> File B has a total of 2 million records.
> It takes about 60 to 70 seconds to complete the processing when the program
> is called for the first time. But it takes only 3 to 4 seconds to complete
> the processing, when the program is called again 2nd or 3rd or 4th or
> 5th...time. Processing time is 60 to 70 seconds only for the first call.
> This happens again if the session is idle for 20 minutes or more. We
> couldn't find out why is this processing time more only for the first call
> to the RPG program. We verified and found that this problem exist
> anytime, irrespective of the peak/non-peak hours of the day.

This thread ...


Return to Archive home page | Return to MIDRANGE.COM home page