2016-03-30 2 views
0

У меня есть 2 облачных сервера postgresql, 1-й работает нормально, но через секунду через 30 минут я не могу подключиться к Java-приложению. Когда я подключаюсь из pgadmin, он показывает соединение 30-40, и после убийства этих соединений каждая вещь работает гладко. егоне удалось подключить postgresql после 30 соединений

конфигурация: PostgreSQL/9.3

max_connections = 100

shared_buffers = 4GB

Когда же приложение является подключение к другому PostgreSQL с тем же самой схемой каждой вещи работает отлично навсегда

Конфигурация: PostgreSQL/9,1

max_connections = 100

shared_buffers = 32MB

Может у пожалуйста, помогите мне понять или решить проблему

+0

Почему у вас открыто 30-40 соединений? Все ли они из вашей заявки? –

+0

Да все из моего приложения , но ограничение равно 100, поэтому его не должно быть проблемой –

+0

Почему ваше приложение (я предполагаю, что это один экземпляр), оставив 40 подключений открытым? В любом случае, вы, вероятно, входите в систему с pgadmin как root, попробуйте psql с тем же пользователем, что и ваше приложение, если вы не можете поймать ошибку в своем приложении. –

ответ

0

Я работаю на экземпляре PostgreSQL 9.3 с сотнями открытых соединений. Я согласен с вами, что сами открытые связи не должны быть проблемой. Синус у нас мало информации, а вот описание того, как начать поиск неисправностей.

  1. Проверка журналов сервера на наличие каких-либо ошибок. Возможно, на уровне ОС есть проблема с инициированием соединений?
  2. Попробуйте войти в систему с помощью psql в качестве пользователя приложения. Сохраняется ли проблема? Если нет, проблема не в PostgreSQL. Я бы более внимательно рассмотрел код Java и посмотрел, что там происходит.
  3. Обратите внимание, что psql и другие действия libpq могут не дать вам полную картину. Попробуйте подключиться локально через соединение без SSL, наблюдая за захватом пакетов. В этом случае вы можете найти (и посмотреть) ошибку SQLSTATE соединения. Это связано с тем, что для целей устаревшей и обратной совместимости libpq не передает sqlstate до клиентского приложения при подключении к базе данных.

Моя ставка заключается в том, что это не проблема postgresql. Это может быть проблема с операционной системой. Это может быть проблема с ресурсами. Это может быть проблема с клиентским приложением.