Re: Connection pool problem - Mailing list pgsql-jdbc

From Stéphane RIFF
Subject Re: Connection pool problem
Date
Msg-id 42246A2E.60604@cerene.fr
Whole thread Raw
In response to Re: Connection pool problem  (Oliver Jowett <oliver@opencloud.com>)
Responses Re: Connection pool problem
Re: Connection pool problem
List pgsql-jdbc
You're right i forgot to call close() function in the catch block
Thanks

But know i sometimes get null connections from the datasource with
exception like this :
2005-03-01 12:23:44,156 : [WARN] ConnectionPool -
org.postgresql.util.PSQLException: The connection attempt failed because
Exception: java.net.BindException: Address already in use: connect
Stack Trace:

java.net.BindException: Address already in use: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
    at java.net.Socket.connect(Socket.java:452)
    at java.net.Socket.connect(Socket.java:402)
    at java.net.Socket.<init>(Socket.java:309)
    at java.net.Socket.<init>(Socket.java:124)
    at org.postgresql.core.PGStream.<init>(PGStream.java:47)
    at
org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:197)
    at org.postgresql.Driver.connect(Driver.java:139)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at
org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:48)
    at
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
    at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
    at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
    at
fr.cerene.geosiara.gprs.receiver.ConnectionPool.getConnection(ConnectionPool.java:97)
    at
fr.cerene.geosiara.gprs.receiver.SQLoader.saveTrame(SQLoader.java:122)
    at fr.cerene.geosiara.gprs.receiver.SQLoader$1.run(SQLoader.java:219)
    at java.lang.Thread.run(Thread.java:534)
End of Stack Trace

2005-03-01 12:23:44,156 : [WARN] SQLoader - java.lang.NullPointerException

I saw on the web that this can happened when the max number of connection
is reach but in my case postgresql is configure with 100 connections, in
the process list i had  ~50 connections.

Don't know what i can do...

Oliver Jowett wrote:

> Stéphane RIFF wrote:
>
>> I've create a connection pool with dbcp end another with
>> Jdbc3PoolingDatasource,
>> it seems to work well but :
>> My pool is a eight connections pool, the problem is when i get some
>> database exception (for example
>> "constraint violation", "duplicate key on unique index"...) the
>> connection didn't released to the pool.
>> After eight exception my application wait for a connection from the
>> pool which nerver give one because
>> of the PSQLException thrown.
>
>
> Perhaps your code does not release the connection to the pool
> correctly when handling the exception?
>
> The usual way to deal with this is to put connection releasing in a
> finally block, so it's sure to be run however you exit the try{} block.
>
> If it's not that, I'd need to see your code to debug this further.
>
> -O
>
>



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.2 - Release Date: 28/02/2005


pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: impossible to update rows specifying columns with NULL
Next
From: Dave Cramer
Date:
Subject: Re: Connection pool problem