agora inbox for pljava-dev@postgresql.org
help / color / mirror / Atom feedSubject: [Pljava-dev] out of memory
Date: Wed, 19 Apr 2006 09:07:42 +0200
Message-ID: <4445E1BE.8060002@lewczuk.com> (raw)
In-Reply-To: <443C9BF2.2070302@tada.se>
References: <e1fn29$od1$1@sea.gmane.org>
<443B63F0.4050803@tada.se>
<443BC400.4030806@lewczuk.com>
<443BCC32.2090306@tada.se>
<443C994F.6060308@lewczuk.com>
<443C9BF2.2070302@tada.se>
Thomas Hallgren napisa?(a):
> Marek,
> You definitely have a memory leak somewhere. The process consumes 2.5
> Gigabytes when it seems to hang. From the looks of it, it doesn't
> actually hang but it is very, very slow (consumes 0.6 %CPU). Your
> main-thread may well hang at this point, the rest of the activity might
> be a struggling garbage collector. Is there any chance that you have a
> huge map or array building up somewhere?
There are no maps at all, but I find the part of the code which (when
enabled) leads to memory leak.
// insert into regional registrations table
{
Statement s = connection.createStatement();
ResultSet r = s.executeQuery("SELECT oCarTypeId FROM
samarapp_data.sapp_cda_pl_cep_rre WHERE oCarTypeId = " + co + " AND
nCarTypeId = " + cn + " AND nMakeId = " + mk + " AND nModelId = " + mo +
" AND nDistrictW = " + rw + " AND nDistrictP = " + rp + " AND
productionYear = " + result.getInt("productionyear") + " AND
registrationYear = " + result.getInt("registrationyear"));
if (r.next() == false) s.execute("INSERT INTO
samarapp_data.sapp_cda_pl_cep_rre (oCarTypeId, nCarTypeId, nMakeId,
nModelId, nDistrictW, nDistrictP, productionYear, registrationYear,
registrationMonth" + result.getInt("registrationmonth") + ") VALUES (" +
co + "," + cn + "," + mk + "," + mo + "," + rw + "," + rp + "," +
result.getInt("productionyear") + "," +
result.getInt("registrationyear") + "," +
result.getInt("registrationamount") + ")");
else s.execute("UPDATE samarapp_data.sapp_cda_pl_cep_rre SET
registrationMonth" + result.getInt("registrationmonth") + "=" +
result.getInt("registrationamount") + " WHERE oCarTypeId = " + co + "
AND nCarTypeId = " + cn + " AND nMakeId = " + mk + " AND nModelId = " +
mo + " AND nDistrictW = " + rw + " AND nDistrictP = " + rp + " AND
productionYear = " + result.getInt("productionyear") + " AND
registrationYear = " + result.getInt("registrationyear"));
r.close();
s.close();
}
I thought that change from "execute" to "executeUpdate" will fix this
but unfortunatelly it didn't. Would you like to see the full source code ?
> Not normally no. As I said previously, I'm trying to eliminate possible
> causes for the leak. The more I know about your code and your setup, the
> better the prognoses that I find something. Ideally, I'd like to look at
> your function. You still keep your configuration a secret. What system
> are you using? PostgreSQL version, OS version, Java version?
PostgreSQL 8.1.0, Linux Debian, Java JDK1.5.0_04
view thread (12+ messages) latest in thread
Message-ID: <4445E1BE.8060002@lewczuk.com>
Permalink: ../4445E1BE.8060002@lewczuk.com/
Also on: postgresql.org/message-id/4445E1BE.8060002@lewczuk.com
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pljava-dev@postgresql.org
Subject: Re: [Pljava-dev] out of memory
In-Reply-To: <4445E1BE.8060002@lewczuk.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox