The first two systems I worked with using InterSystems technology were a PDP-11 running M11+ and a VAX 11/750 running M/VX. Too many years ago to count! 😊
Since then I've used most, if not all, InterSystems products up to IRIS and HealthShare today.
I'm Italian living in Switzerland and I work as Senior Consultant at GAIVOTA consultin SA, we provide professional services for InterSystems and other technologies.
Curiosity: apart from DC, I don't have ANY social account! 😁
I'm afraid I don't have an answer, I use JDBC regularly (admittedly , not Postgres and NOT using %XDBC classes) and I've never seen this behavior.
If anyone wants to dive deeper in this issue, more information are required to analyze and maybe try to reproduce it, like:
"....rapid increase in memory consumption by the IRIS server" What process is consuming memory?
What OS, Windows or Linux? If Linux, what flavor?
What Java version are you using?
What version of Postgres JDBC driver are you using?
Last but to least, note that class %XDBC.Gateway says:
"FOR INTERNAL USE - do not invoke directly"
LoadPageDir() compiles the subdirectories as well if/when in the Web Application definition the setting "Web Settings: Recurse" is flagged (enabled). (It's flagged/enabled by default when creating a Web App)
How is Recurse setting set in your "/CSP/ourapp/" Web Application definition/configuration?
Note that the directory you pass to LoadPageDir is in fact the path of a Web Application, not the physical path on disk.












Have you tried using the proper, official, documented and supported way to do that using Foreign Tables?
Does the memory leak happen using Foreign Tables ?
Maybe the way you are using the "FOR INTERNAL USE" classes is not proper/correct.
Why using something you are not supposed to use when there is a proper/supported way to do this?