From: | thomas at tada(dot)se (Thomas Hallgren) |
---|---|
To: | |
Subject: | [Pljava-dev] java.lang.OutOfMemoryError |
Date: | 2006-06-28 13:42:15 |
Message-ID: | 44A28737.7090200@tada.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pljava-dev |
Eric BOYER wrote:
> Thomas Hallgren a ?crit :
>
>> Eric BOYER wrote:
>>
>>
>>> just one thing
>>>
>>> We always use the fonction execute and never executeUpdate for our
>>> operations ...
>>>
>>>
>>> is it important ?
>>>
>>>
>> It might be. If the query is producing a ResultSet (any 'SELECT ...'
>> that is not a 'SELECT ... INTO' will do that) and you forget to close
>> the statement, then you leave the ResultSet dangling.
>>
>>
> We close all resultset !
Yes, provided you obtain it. What I meant to say was that the following
code:
stmt.execute("SELECT someFunction()");
will actually create a ResultSet. So unless it's followed by either:
stmt.getResultSet().close();
or simply:
stmt.close(),
you will leave that set dangling. In fact, this code:
stmt.execute("SELECT someFunction1()");
stmt.execute("SELECT someFunction2()");
will leak since there's no close in between. That's a bug in PL/Java,
the execute should make sure that the statement is closed prior to
executing (it does now).
> The long treatment for the data insertion last about 30 heures !
>
For 5000 inserts? That's about 20 seconds per account! I guess you're
mostly waiting on the LDAP connection then?
Regards,
Thomas Hallgren
From | Date | Subject | |
---|---|---|---|
Next Message | Eric BOYER | 2006-06-28 13:50:42 | [Pljava-dev] java.lang.OutOfMemoryError |
Previous Message | Eric BOYER | 2006-06-28 13:29:04 | [Pljava-dev] java.lang.OutOfMemoryError |