db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Van Couvering <David.Vancouver...@Sun.COM>
Subject Re: error when turning off auto commit
Date Fri, 13 May 2005 17:07:23 GMT
I thought there was a bug where not closing statements accumulated 
memory, but it's just a rumor for me, not a direct experience.

David

Mike Matrigali wrote:

> Does anyone know if it is expected in derby to accumulate memory in
> a single transaction if you don't close statements or resultSets?
> I am pretty sure not closing ResultSets is a problem, I am not sure
> about Statements.
> 
> Daniel John Debrunner wrote:
> 
>> Chris wrote:
>>
>>
>>> Hi,
>>>
>>> to demonstrate the problem, i've written some code which approximates
>>> the code i'm using.  (attached)
>>>
>>> I'm running Java 1.4.2 with the JVM parameter -Xmx64m.
>>>
>>> If you run the test() method,  the memory used by the JVM  rises to
>>> above 150mb until the following exception happens:
>>
>>
>>
>> Thanks for the test case.
>>
>> I noticed that you are not using PreparedStatements for the query or the
>>  insert. Using PreparedStatements will make your program much faster, as
>> the statement does not need to be recompiled every time. This is true
>> for all JDBC drivers.
>>
>> See
>>
>> http://incubator.apache.org/derby/manuals/tuning/perf21.html#HDRSII-PERF-18705 
>>
>>
>> E.g.
>>
>> PreparedStatement psq = conn.prepareStatement("SELECT id FROM test WHERE
>> id = ?");
>> psq.setInt(1, id);
>> ResultSet rs = psq.executeQuery();
>>
>>
>> Your code uses a new Statement object to execute every statement, which
>> can also be avoided since Statement objects are reuseable. Though I
>> would recommend PreparedStatements.
>>
>> Also your code never closes the Statement or ResultSet objects it
>> creates, this may be contributing to the problem.
>>
>> Applying the above techniques may allow you to progress past this issue,
>> though it should still be seen as a bug.
>>
>> Dan.
>>
>>
>>
>>
>>
> 

Mime
View raw message