Goodday everyone.
Faced strange OOM after switching from reading varchar field to clob from Oracle database in java application.
(We are using oracle.jdbc.driver with bonecp connection pool + spring jdbctemplate)
Heapdump shows(see picture)
that memory stays in temporaryLobs fields inside a com.jolbox.bonecp.ConnectionPartition->freeConnections
More precisely data contained in temporaryLobs.elementData array which constantly grows (according to jvm metrics with memory used and manual heapdumps).
At moment of OOM, there was approximately 50Mb for each connection in pool (30+ actual connections), with populated temporaryLobs so we got 1Gb+ data only for connection pool.
It seems like some kind of clob "cache"?.
I will try to struggle through library code on debug with breakpoins and find what is going on, but mb there can be some kind of well known configuration for such scenario or some kind of ratio between some properties and datatypes and those temp lobs.
Thanks in advance.