Мы сталкиваемся с исключением при подключении к базе данных через наше Java-приложение.Трассировка стека выглядит следующим образом:
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 дня в том же коде, т.е. при подключении к БД.Мы проверили TCP-соединения с помощью netstat.Но TCP-соединений было немного, т. Е. Он не достиг максимального предела.
Наше приложение имеет несколько долго выполняющихся процессов Java, которые объединяют соединения с БД (не более 60) и поддерживают его для запуска следующего запроса.(так как он должен опрашивать БД каждые 2 секунды).Некоторые запросы в нашем приложении объединяют большие таблицы (10 миллионов записей) для получения связанных данных.
Мы используем следующие системы и приложения
- Сервер Windows 2003 SP2
- Java 1.6
- Сервер Postgres Plus Advanced 8.4 База данных
edb-jdbc14.jar
драйвер для подключения к базе данных из Java
Мы использовали конфигурацию по умолчанию для Postgres DB, за исключением увеличения соединения до 120 со 100.
Кто-нибудь встречал такую же ошибкус драйвером postgres edb?
Кто-нибудь может помочь нам найти решение?