#java #mysql #spring #spring-boot #jdbc
#java #mysql #spring #весенняя загрузка #jdbc
Вопрос:
Приложение Spring Boot использует MySQL C3p0 DataSource
.
Этот источник данных я использую для работы с JDBC и JPA (спящий режим провайдера).
В каждом методе уровня DAO JDBC у меня есть исключение SQLException try / catch. И этот блок catch действительно улавливает это исключение связи, но..
Но когда я пытаюсь so отправлять запросы все чаще и чаще, у меня возникает этот stacktrace.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
Caused by: java.net.ConnectException: Connection refused: connect
много деталей..
И, наконец ,я перехватываю в блоке перехвата SQLException:
java.sql.SQLException: Connections could not be acquired from the underlying database!
Перед этим сообщением приложение выглядело так, как будто оно не может подключиться, и оно знает об этом.
Он очень быстро выдает ответы с кодом состояния 500.
После этого сообщения приложение выглядит так, как будто оно пытается подключиться и не может понять, что у него не получается. В этом случае он выдает ответы очень медленно.
После включения базы данных приложение работает без перезапуска.
Комментарии:
1. Не могли бы вы поместить код некоторых ваших DAO и конфигурацию подключения к базе данных в Spring?
2. @JosemyAB конечно, вопрос обновлен
Ответ №1:
Трассировка большого стека может быть распечатана веб-сервером, на котором запущено ваше приложение. Возможно, это не из вашего кода. Вам нужно прочитать о вашем веб-сервере о том, как избежать такой печати трассировки стека.