Thanks for your reply John
We just had a meeting concerning this situation
One of the other programmers was actually in STRDBG while a user was using the program and it looks like the culprit is a join logical file
At one point the code takes a full 20 seconds to read the next record in the join logical
This join logical is between 3 separate files
Personally – I hate such files
We believe the access paths on this file may not be the most efficient – what with deleting records and running re-orgs(RGZPFM) etc.
So we plan on deleting this logical and recreating it
However, because its month end, we have decided to not do this until early morning on the 2nd
Alan Shore
Solutions Architect
IT Supply Chain Execution
60 Orville Drive
Bohemia, NY 11716
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
E-mail : ASHORE@xxxxxxxxxxxxxxxxxxxx
‘If you're going through hell, keep going.’
Winston Churchill
-----Original Message-----
From: John Yeung [mailto:gallium.arsenide@xxxxxxxxx]
Sent: Tuesday, May 31, 2022 4:56 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Cc: Rob Berendt <rob@xxxxxxxxx>; Alan Shore <ashore@xxxxxxxx>
Subject: [EXTERNAL] Re: Is there a limit as to the number of files an RPG ILE program can procss
On Tue, May 31, 2022 at 1:48 PM Alan Shore via MIDRANGE-L <midrange-l@xxxxxxxxxxxxxxxxxx> wrote:
I do agree with your thought as to it being a hard halt - but right
now I am clutching at straws as to what is causing this slow down
Back in the day, it used to be 50 files. To me that sounds like a ridiculously high number already, but indeed our old codebase has some gigantic legacy programs that use that many, and you can tell that a subsequent programmer (still from ages ago) split off part of the processing to another program because they needed more than that.
Maybe IBM should *tighten* the file limit rather than remove it, to encourage "modular" programming. ;)
But as for the performance problem, my guesses would be (1) when the program was changed, some algorithmic inefficiency was introduced, like inadvertently reading a file inside a loop when it really only needs to be read once before or after the loop; or (2) maybe the file that was added is often in use, so the program often has to wait for it to be freed up; or it's chaining with lock when it could be chaining without lock.
John Y.
As an Amazon Associate we earn from qualifying purchases.