Synchronize Portfolio Investments causing a BG crash due to java.lang.OutOfMemoryError
Synchronize Portfolio Investments job makes calls to get the database metadata from the DBMS through the driver. Unless this metadata is changed during runtime, the data should be cached and reused.
Instead, each run of the job repeats the same activity. When there are a lot of database connections in the pool due to normal usage (processes, gel scripts, background jobs) and then a large number of portfolios are scheduled to be synchronized, the potential for different connections to repeat this same effort (due to round-robin style use of the connections) increases further.
Progress DataDirect drivers implement "statement pooling" as a client-side optimization. This can result in a large accumulation of the same statements in separate connections of the pool. Observations include 150-400 statement references per connection, >15k total for the connection pool, and then ultimately causing a BG crash due to java.lang.OutOfMemoryError
This is defect DE36817. Resolved in 15.4