У меня есть приложение, которое использует Spring Boot, которое работает как демон и выполняет обработку каждые 24 часа, в котором оно использует MySQL. Я выпустил его вчера, и сегодня он впервые попытался выполнить обработку, но, к сожалению, я получил следующую ошибку (соответствующие сегменты стека):
08:00:31.264 [pool-1-thread-1] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
...
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
...
Caused by: java.net.SocketTimeoutException: connect timed out
Я сомневаюсь, что в то время что-то не так с MySQL, я более склонен к тому, что, возможно, соединение устарело, хотя я думаю, что пул соединений должен позаботиться об этом.
Кто-нибудь сталкивался с подобной ситуацией и смог ее разрешить? Пожалуйста, дайте мне знать, какую другую соответствующую информацию я должен опубликовать. Вот мой application.properties
без информации о безопасности, конечно:
spring.datasource.url=jdbc:mysql://<server>:3306/<schema>?characterEncoding=UTF-8&useUnicode=true
spring.datasource.username=<username>
spring.datasource.password=<password>
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Соответствующее содержание pom.xml
:
...
<properties>
...
<mysql-connector-java.version>5.1.38</mysql-connector-java.version>
<spring.boot.version>2.1.3.RELEASE</spring.boot.version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
...
</dependencies>
...
Приложение использует JdbcTemplate
, который предоставляет Spring Boot.