db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Satheesh Bandaram <sathe...@Sourcery.Org>
Subject Re: error when turning off auto commit
Date Fri, 13 May 2005 22:33:57 GMT
If you keep reusing Statement object, I don't believe there is a leak.
If one keeps creating a new Statement for every query executed, there
seems to be a "leak". Derby client also behaves the same way as embedded
driver here.

Seems like a very bad practice...

Satheesh

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