Memory problem with oracle jdbc driver 10.2.0.4 p-6396242
739067Dec 4 2009 — edited Dec 11 2009Hi
We run a Webapplication on Tomcat 5.5.27 (jdk 1.5.0_16)
and Oracle 10.2.0.4 p-6396242 (implicit and explicit statement caching disabled)
We use connectionPooling apache commons-dbcp-1.2.2 with commons-pool-1.5.4.
In a generic module of the application, a lot of dynamic sql statements get created and executed.
Most of the statements are completely unique and not reusable (no bind variables used).
Of course, it's not a very usual way to make all statements without using binding. It's an older framework of the customer, which cannot get replaced at the moment.
The problem is as followed:
When running a mass data mutation, the jvm's memory-usage goes up in a more or less straight line, about 250meg per minute, which results in an OutOfMemoryException.
I checked every connection, statement and resultSet to get closed properly.... everything's fine.
In jProfiler i see, where the memory is used, but it makes no real sense to me.
In every T4CConnection the 'statements' property contains a linkedList of T4CPreparedStatement instances and the list only gets bigger and bigger, and of course, the gc does not collect anything, since they're all referenced through the linkedList.
Has anyone an idea, what the problem could be in this case?
What exactly is T4CConnection.statements, I mean what is it for? And why are the statements hold within T4CConnection.statements?
Thanks a lot
Best Regards, Andreas