Spring Boot — приложение теряет соединение с БД в PRD

#java #spring #spring-boot #tomcat

#java #весна #весенняя загрузка #tomcat

Вопрос:

Я прочитал много вопросов здесь, в stackoverflow, по этому вопросу, и закончил следующим кодом в своем приложении -prd.properties:

 #PRD IP
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=

# Fix for DB Connection
spring.datasource.tomcat.max-active=10
spring.datasource.tomcat.initial-size=5
spring.datasource.tomcat.max-idle=5
spring.datasource.tomcat.min-idle=1
spring.datasource.tomcat.test-while-idle=true
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.validation-query=SELECT 1 FROM DUAL
spring.datasource.tomcat.time-between-eviction-runs-millis=5000
spring.datasource.tomcat.min-evictable-idle-time-millis=60000

#Error fix for JSON conversion
spring.jackson.parser.allow-unquoted-control-chars=true
  

Но по какой-то причине Tomcat с моим весенним приложением внезапно теряет соединение с базой данных, выдавая следующую ошибку:

 Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
  

Я не знаю, что мне делать. Прошло несколько недель, с которыми я борюсь. Есть ли что-нибудь еще, что я могу сделать? Или я могу сказать, что это проблема с брандмауэром, и команда инфраструктуры должна что-то проверить?

Спасибо

Комментарии:

1. Можете ли вы подключить базу данных с помощью любого инструмента клиента базы данных? Например, datastudio или клиент mysql. Также, если у вас есть IP, попробуйте пропинговать URL.

2. Я могу подключиться снова, только если перезапущу tomcat.

3. Вы пытались увеличить размер пула соединений? Что произойдет, если вы увеличите размер?

Ответ №1:

Также проверьте наличие утечек соединения, возможно, некоторые txn не закрывают соединение должным образом, поэтому пул превысил пороговое значение.