我们在通过我们的Java应用程序连接到数据库时遇到了异常。堆栈跟踪如下没有缓冲空间可用(已达到最大连接?)形式Postgres EDB驱动程序
com.edb.util.PSQLException: The connection attempt failed.
at com.edb.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:189)
at com.edb.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
at com.edb.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:161)
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(ConnectionFactoryImpl.java:115)
... 20 more
当错误发生时,我们无法连接到互联网和数据库,并不得不重新启动系统。但是,在连接到数据库的同一代码的3天后再次出现错误。我们使用netstat检查了TCP连接。但是没有太多的TCP连接,即没有达到最大限度。
我们的应用程序有多个长时间运行的Java流程,池中的数据库连接(不超过60),并保持它活着的发射下一个查询(因为它必须查询每2秒的DB)。我们应用程序中的一些查询正在加入大型表(1000万条记录)以获取相关数据。
我们使用以下的系统及应用
- 的Windows 2003 Server SP2
- 的Java 1.6
- 的Postgres Plus Advanced Server的8.4数据库
edb-jdbc14.jar
从Java
我们使用Postgres DB的默认配置,除了增加从100
连接到120人encountred在Postgres教育局司机同样的错误?
任何人都可以帮助我们找到解决方案吗?
服务器日志所以什么? – 2011-01-11 12:11:32