Невозможно создать начальные соединения пула, Невозможно получить ошибки соединения JDB C - PullRequest
1 голос
/ 20 января 2020

У меня есть приложение JPA для данных Spring Boot, в котором я создаю два источника данных. Я получаю эту ошибку при загрузке моего приложения.

1. org.apache.tomcat.jdbc.pool.ConnectionPool init
SEVERE: Unable to create initial connections of pool.
java.sql.SQLException
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:253)
2. Caused by: java.lang.NullPointerException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:245)
    ... 88 more

3. Jan 20, 2020 7:39:29 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: null
[http-bio-8080-exec-1] ERROR org.springframework.boot.web.support.ErrorPageFilter - Forwarding to error page from request [/orderForDateTopK/1/2] due to exception [Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection]
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
    at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:431)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)

4. Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692)

5. Caused by: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection

1 Ответ

0 голосов
/ 21 января 2020

Вы используете Tomcat JDB C Пул соединений для своего источника данных, но в вашем application.properties вы настроили пул соединений для Hikari источник данных.

Ваш datasource не является инстансным, из-за настроек пула соединений .

ваша неправильная конфигурация:

#HikariCP settings
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.minimum-idle=1

У вас есть 2 решения

1 - Измените пул соединений Настройки с Hikari на Tomcat

вот так

spring.datasource.tomcat.initial-size=
spring.datasource.tomcat.max-wait=
spring.datasource.tomcat.max-active=
spring.datasource.tomcat.max-idle=
spring.datasource.tomcat.min-idle=
spring.datasource.tomcat.default-auto-commit=
//..

Несколько полезных советов в этой области:

Настройка пула соединений Tomcat

2- Используйте Пул соединений Hikari вместо tomcat (Изменить пул соединений источника данных)

Несколько полезных руководств в этой области:

Простое руководство по пулу соединений в Java

Введение в HikariCP

...