2009-05-21 4 views
2

В нашем проекте мы используем postgresSql (8.3) в качестве сервера базы данных, но мы редко сталкиваемся с проблемой (раз в то время). в файле журнала я вижу ошибку КакОшибка подключения на сервере postgreSQL

****Connection attempt failed**** 

это означает для меня, что приложение пытается получить объект соединения с сервером БД но это неудачная.

Странно, когда я перезапускаю сервер базы данных или веб-сервер (Tomcat), он будет работать нормально. Я получу эту ошибку редко.

+0

Можете ли вы предоставить дополнительную информацию о своей среде, приложениях, поскольку причина может быть вне postgres. –

+0

Является ли эта ошибка в журнале tomcat? Если да, есть ли обратная линия исключения? Есть ли ошибки в журнале postgresql примерно в это время? – araqnid

+0

Вам нужно больше информации для этого. –

ответ

0

Это обычное явление в веб-приложениях, когда пользователь отменяет запрос, а сервер убивает соединение в середине запроса. Похоже, на самом деле это не останавливает сервер?

1

Вот несколько вещей, которые могут быть причиной этого, без каких-либо подробностей я не могу сказать больше.

ошибка 1.Network. Существует вероятность того, что часть строки соединения не передается PostgreSQL. См. Пункт 2.

2.The Connection String поврежден. Строка подключения создается динамически?

3.Проблема в соединении пула. Это должно вызвать ошибку в вашем пуле соединений, хотя. Не зная, какой тип пула подключений вы используете, я не могу это исключить.

1

Возможно, вы превысите максимальное количество подключений. Посмотрите в postgresql.conf для параметра max_connections, его значение по умолчанию - 100 на большинстве построек.

netstat -tn | grep -c 5432 

Необходимо предоставить приблизительное количество открытых в данный момент подключений.

0

Убедитесь, что вы закрываете ресурсы (соединение, оператор, набор результатов) в блоке finally после их открытия. Если вы используете пул соединений, также убедитесь, что его maxsize не установлен слишком высоким.

Смежные вопросы