我們在通過我們的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