Пул c3p0 не может установить соединение. Как это отладить? - PullRequest
2 голосов
/ 30 января 2010

У меня установлены Tomcat и PostgreSQL на сервере. У меня проблема с подключением, пытаясь подключиться из моего сервлета к базе данных PostgreSQL с помощью пула c3p0.

Я могу связаться с DB, если я запускаю Tomcat локально на своем ноутбуке. Также я могу подключиться с сервера к БД, используя psql (то есть утилиту командной строки sql). Но когда я пытаюсь развернуть свой сервлет на сервере и установить соединение, я получаю следующую ошибку:

java.sql.SQLException: Connections could not be acquired from the underlying database!
    com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
...
    com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
        com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
        com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
        com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)

Что я должен проверить, чтобы найти проблему? Это должно быть тривиальным вопросом, но может быть из-за 4 утра. Я что-то упустил :) Заранее спасибо!

PS: соединение со всеми сетевыми интерфейсами разрешено к базе данных. Драйвер JDBC PostgreSQL и пул c3p0 распространяются в WAR. Конфигурация Tomcat очень по умолчанию. JNDI не используется.

Ответы [ 2 ]

2 голосов
/ 22 апреля 2016

К ответу Алексея @ у меня возникла эта проблема с Tomcat и PostgreSQL 9.4. В моем случае проблема была вызвана методом md5 аутентификации в postgres.

Если вы используете Windows server или RHEL server, обязательно обновите метод аутентификации в файле pg_hba.conf. Измените его на trust и перезапустите postgresql.

2 голосов
/ 18 февраля 2010

Вам нужно проверить несколько вещей:

  1. java.policy, который использует tomcat (например. /etc/tomcat5.5/policy.d/02debian.policy)
  2. Настройки сервера базы данных (например, /etc/postgresql/pg_hba.conf)
  3. попробуйте подключиться без пула сначала как в моем случае c3p0 скрывал от меня важную информацию
...