[Pljava-dev] java.lang.OutOfMemoryError

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

In response to

Responses

Browse pljava-dev by date

  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