Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Memory problem with oracle jdbc driver 10.2.0.4 p-6396242

739067Dec 4 2009 — edited Dec 11 2009
Hi
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
This post has been answered by Timur Akhmadeev on Dec 10 2009
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 8 2010
Added on Dec 4 2009
12 comments
6,959 views