Oracle T4CPreparedStatement memory leak?

A little about the application, which I will talk about in the next few lines:

XYZ is an RCP application for eclipse to mask data: you give it a column of the source table and a column of the target table, it will apply the transformation (encryption / shuffling / etc) and copy the row of data from the source table to the target table. Now, when I mask n tables at a time, n threads are started in this application.

Here is the problem:

I am having a problem releasing the first version from the above application. Unfortunately, I do not have magazines to get to the root. However, I tried to run this application in a test region and perform a stress test.

When I collected .hprof files and ran them through the analyzer (yourKit), I noticed that the oracle.jdbc.driver.T4CPreparedStatement objects kept a bunch. The analysis also tells me that one of my classes contains a reference to this prepared object object, and thus n threads have n such objects. The T4CPreparedStatement seemed to have arrays of characters: lastBoundChars and bindChars each of char size [300000].

So, I studied a little (google!), Got ojdbc6.jar and tried to decompile T4CPreparedStatement. I see that T4CPreparedStatement extends OraclePreparedStatement, which dynamically controls the size of lastBoundChars and bindChars.

So my questions are here:

  • Have you ever encountered a problem like this?
  • Do you know the value of lastBoundChars / bindChars?
  • , , ? ( hprofs MAT - - , , ?)

- : http://forums.oracle.com/forums/thread.jspa?messageID=2860681

/.

+5
2

, , 11g. SQL , SQL . , , :

try {
PreparedStatment stmt = null;
stmt = con.prepareStatement("SOME AWESOME SQL");
//lots of lines of code that masks the problem
stmt = con.prepareStatment("DIFFERENT SQL"); //You just leaked "SOME AWESOME SQL"!!!
//lots more code
} finally {
stmt.close() //looks like everything is ok, but only the second one actually got closed
}
+8

. Affe , , :

JDBC Oracle , . ( VARCHAR(2000) - 2000 char s), JDBC. , , (-) .

. ( PreparedStatement ...), . 1,6 !

Oracle PDF

11.2.0.3.

+11

All Articles