Re: Connection pool problem

Поиск
Список
Период
Сортировка
От Dave Cramer
Тема Re: Connection pool problem
Дата
Msg-id 42246D04.1060506@fastcrypt.com
обсуждение исходный текст
Ответ на Re: Connection pool problem  (Stéphane RIFF <stephane.riff@cerene.fr>)
Ответы Re: [SPAM] - Re: Connection pool problem - Found word(s) list  (Stéphane RIFF <stephane.riff@cerene.fr>)
Список pgsql-jdbc
Stephane,

You didn't read his email carefully enough. Close your connections in a
FINALLY block. That way they are guaranteed to be closed

as far as your exception below, that is very strange. If you are out of
connections on the server then you should get that error
not a bind exception ???

Dave


Stéphane RIFF wrote:

> 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
>>
>>
>
>
>

--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Stéphane RIFF
Дата:
Сообщение: Re: Connection pool problem
Следующее
От: Markus Schaber
Дата:
Сообщение: Re: impossible to update rows specifying columns with NULL