Re: [SPAM] - Re: Connection pool problem - Found word(s) list

From: Stéphane RIFF <stephane(dot)riff(at)cerene(dot)fr>
To: pg(at)fastcrypt(dot)com
Cc: Oliver Jowett <oliver(at)opencloud(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: [SPAM] - Re: Connection pool problem - Found word(s) list
Date: 2005-03-01 13:37:33
Message-ID: 4224701D.9080002@cerene.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Yes sorry that's what i want to say "finally" blocks
and that's what i did.

For the exception i don"t have any more idea yet
Dave Cramer wrote:

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

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

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Markus Schaber 2005-03-01 13:51:05 Re: impossible to update rows specifying columns with NULL
Previous Message Dave Cramer 2005-03-01 13:24:20 Re: Connection pool problem