Обсуждение: BUG #5829: No buffer Space Available(maximum connection reached?) from postgres edb driver
BUG #5829: No buffer Space Available(maximum connection reached?) from postgres edb driver
От
"Listening Platform"
Дата:
The following bug has been logged online: Bug reference: 5829 Logged by: Listening Platform Email address: listening.platform@gmail.com PostgreSQL version: 8.4 AS Operating system: Windows 2003 server SP2 Description: No buffer Space Available(maximum connection reached?) from postgres edb driver Details: Hi, We are facing an exception while connecting to database through our application. The stack trace is as follows com.edb.util.PSQLException: The connection attempt failed. at com.edb.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryIm pl.java:189) at com.edb.core.ConnectionFactory.openConnection(ConnectionFactory.java:64) at com.edb.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:16 1) at com.edb.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30 ) at com.edb.jdbc3.Jdbc3Connection.<init>(Jdbc3Connection.java:24) at com.edb.Driver.makeConnection(Driver.java:391) at com.edb.Driver.connect(Driver.java:266) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) ... 12 more Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at com.edb.core.PGStream.<init>(PGStream.java:70) at com.edb.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryIm pl.java:115) ... 20 more When the error occured we were not able to connect to internet and DB and had to reboot the system.But the error occured again after 3 days at same code i.e while connecting to DB.We checked TCP connections using netstat. But there were not many TCP connections i.e it has not reached the max limit. Our application has multiple long running Java processes that pools the DB connections (not more than 60) and keeps it alive for firing the next query (as it has to poll the DB every 2 seconds).Some of the queries in our application are joining large tables(10 million records) to get the related data. We are using following System and applications Windows 2003 server SP2 Java 1.6 Postgres Plus Advanced server 8.4 Database edb-jdbc14.jar driver for connection DB from Java We have used the default configuration of Postgres DB except increasing the connection to 120 from 100. Has anybody encountred the same error with postgres edb driver? Can anybody help us finding the solution?
On 01/11/2011 05:41 PM, Listening Platform wrote: > > The following bug has been logged online: > > Bug reference: 5829 > Logged by: Listening Platform > Email address: listening.platform@gmail.com > PostgreSQL version: 8.4 AS > Operating system: Windows 2003 server SP2 > Description: No buffer Space Available(maximum connection reached?) > from postgres edb driver > Caused by: java.net.SocketException: No buffer space available (maximum > connections reached?): connect > at java.net.PlainSocketImpl.socketConnect(Native Method) > at java.net.PlainSocketImpl.doConnect(Unknown Source) > at java.net.PlainSocketImpl.connectToAddress(Unknown Source) > at java.net.PlainSocketImpl.connect(Unknown Source) > at java.net.SocksSocketImpl.connect(Unknown Source) > at java.net.Socket.connect(Unknown Source) > at java.net.Socket.connect(Unknown Source) > at java.net.Socket.<init>(Unknown Source) > at java.net.Socket.<init>(Unknown Source) > at com.edb.core.PGStream.<init>(PGStream.java:70) > at > com.edb.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryIm > pl.java:115) > ... 20 more It'd be nice to have those "20 more". Java's habit of truncating exception stack traces is one of the more annoying things it does. In this case, though, it seems pretty likely that you > When the error occured we were not able to connect to internet and DB Hang on ... you mean that you were unable to access Internet services from the machine either? Were you able to connect to the running PostgreSQL database via "psql" or via PgAdmin III? Were there any error messages in the postgresql log files? What about ICMP ping? traceroute ("tracert" on Windows) to Internet hosts? To your local gateway / nexthop router? etc. > We checked TCP connections using netstat. > But there were not many TCP connections i.e it has not reached the max > limit. What is "not many" in this context? Which limit? you know that the operating system imposes its own limit on the number of TCP/IP connections that may exist, right? That limit includes connections that are half-open or closing as well as regular open/established connections. > Java 1.6 Java SE 6? Java EE 6? There is no such thing as "java 1.6". -- Craig Ringer