Spring boot 如何在SpringBoot应用程序中配置与hikari的自动重新连接?

Spring boot 如何在SpringBoot应用程序中配置与hikari的自动重新连接?,spring-boot,hikaricp,Spring Boot,Hikaricp,我们使用的是SpringBoot 2.1.x版本,因此Hikari是默认的数据源实现。但是,我不知道如何配置Hikari设置,以便在数据库维护/重新启动或网络连接出现问题后自动重新连接到Oracle数据库 我们有以下hikari设置,但似乎没有帮助 account.datasource.url: jdbc:oracle:thin:@myserver:1521:DEV account.datasource.username: user account.datasource.password: xx

我们使用的是SpringBoot 2.1.x版本,因此Hikari是默认的数据源实现。但是,我不知道如何配置Hikari设置,以便在数据库维护/重新启动或网络连接出现问题后自动重新连接到Oracle数据库

我们有以下hikari设置,但似乎没有帮助

account.datasource.url: jdbc:oracle:thin:@myserver:1521:DEV
account.datasource.username: user
account.datasource.password: xxxx
account.datasource.driverClassName: oracle.jdbc.driver.OracleDriver

account.datasource.hikari.connection-timeout: 30000
account.datasource.hikari.maximum-pool-size: 3
account.datasource.hikari.idle-timeout: 60000
account.datasource.hikari.max-lifetime: 1800000
account.datasource.hikari.minimum-idle: 2
恢复与数据库的网络连接后,无法重新连接

获取JDBC连接失败;嵌套异常为java.sql.SQLTransientConnectionException:HikariPool-1-连接不可用,请求在30033ms后超时

任何其他account.datasource.hikari.xxxxx将有助于自动重新连接到数据库?

从HikariCP:

connectionTestQuery

如果您的驱动程序支持JDBC4,我们将非常支持 建议不要设置此属性。这是为那些 不支持JDBC4连接。isValid()API。这就是问题所在 这将在从中向您提供连接之前执行 用于验证与数据库的连接是否仍然有效的池 活着的再次尝试在没有此属性HikariCP的情况下运行池 如果您的驱动程序不兼容JDBC4,将记录一个错误以允许您 知道。默认值:无


因此,我建议验证您的JDBC驱动程序是否符合JDBC4。如果没有,请设置上述属性。

2019-07-19 08:26:24.158---com.zaxxer.hikari.HikariDataSource:hikaripol-1-启动。。。2019-07-19 08:26:24.161---com.zaxxer.hikari.util.DriverDataSource:找不到driverClassName=oracle.jdbc.driver.OracleDriver的注册驱动程序,正在尝试直接实例化。2019-07-19 08:26:25.375---com.zaxxer.hikari.pool.PoolBase:HikariPool-1-驱动程序不支持获取/设置连接的网络超时。(oracle.jdbc.driver.T4CConnection.getNetworkTimeout()I)2019-07-19 08:26:25.430---com.zaxxer.hikari.HikariDataSource:hikaripol-1-启动完成。谢谢。我在日志中没有看到错误,所以JDBC4投诉,对吗?我们发现了问题,我们的重新连接问题。上述设置实际上负责自动重新连接。但是,我们内部有一个网络服务器问题,导致了各种问题,包括重新连接问题。干得好,Hikari数据源。