Connection pooling problems

From: Didrik Pinte <dp(at)adhoc(dot)be>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Connection pooling problems
Date: 2003-02-04 08:37:35
Message-ID: 5.1.0.14.0.20030204092303.0245ee60@192.168.0.11
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi,

I'm currently running a Tomcat 4.0.6 using a pooled data source as a JNDI
ressource (using the jakarta commons DBCP). The database is a PostgreSQL
7.3. The two computers are separated by a firewall. Everything works fine
except a strange problem I can't solve.

After a day on (it is not very regular), the application can't connect
anymore to the database, i'm getting the following error in the Tomcat's log:

An I/O error has occured while flushing the output - Exception:
java.net.SocketException: Connection reset by peer: socket write error
Stack Trace:

java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite(Native Method)
at java.net.SocketOutputStream.write(SocketOutputStream.java:96)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:72)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:130)
at org.postgresql.PG_Stream.flush(PG_Stream.java:352)
...

In the postgres log, i'm reading :

Feb 3 21:10:47 XXXXXXX postgres[9934]: [4] LOG: pq_recvbuf: recv()
failed: Connection reset by peer

My JNDI ressource is configured like that :

<Resource name="jdbc/refPG" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="jdbc/refPG">
<parameter>
<name>username</name>
<value>myusername</value>
</parameter>
<parameter>
<name>password</name>
<value>*******</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.postgresql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:postgresql://hostname/db</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>50</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
</ResourceParams>

Do someone knows why I receive such an error ? I have no information in my
firewall log about denying access, but I suspect the configuration of the
pool being the origin of it. Maybe do I have to use
org.postgresql.jdbc2.optional.PooledDataSource in place of
org.postgresql.Driver in my configuration ?

Any help is welcome.

Thanks

Didrik Pinte
Adhoc Solutions
www.adhocsolutions.com

**** DISCLAIMER ****
This e-mail and any attachments thereto may contain information
which is confidential and/or protected by intellectual property
rights and are intended for the sole use of the recipient(s) named above.
Any use of the information contained herein (including, but not limited to,
total or partial reproduction, communication or distribution in any form)
by persons other than the designated recipient(s) is prohibited.
If you have received this e-mail in error, please notify the sender
and delete the material from any computer.
Thank you for your cooperation.

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Tom Lane 2003-02-04 09:18:25 Re: Connection pooling problems
Previous Message Kris Jurka 2003-02-04 06:44:57 Re: Unusable resultset [Viruschecked]