Назад | Перейти на главную страницу

Подключение к RDS Postgres через jdbc и c3p0 невозможно получить из базовой базы данных

Попытка подключиться из приложения с использованием C3P0 и последней версии драйвера Postgresql JDBC 9.4.1211.

Мы хотим, чтобы строка подключения была SSL и имела хэш-пароль MD5 для учетной записи пользователя:

c3p0 {
  jdbcUrl = "jdbc:postgresql://myserver.rds.amazonaws.com/MyDatabase?ssl=true"
  user = MyAccount
  password = MyPassword
  testConnectionOnCheckout = true
}

Сервер сгенерировал сертификаты SSL, которые указаны в группе параметров вместе с ssl = 1.

Сертификат добавлен в JVM cacerts

Что мы получаем ошибку:

Вызвано: java.sql.SQLException: не удалось получить подключения из базовой базы данных! com.mchange.v2.sql.SqlUtils.toSQLException (SqlUtils.java:118) com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection (C3P0Pcom.mchange.v2.c3p0.impl.AbstractPool

Мы можем использовать ту же учетную запись для успешного подключения через psql и pgadmin.

Обнаружил проблему, кажется, c3p0 удаляет ssl = true из строки подключения. Параметр ssl должен быть закодирован в объекте свойств для соединения.