如何在SpringBoot应用程序中使用hikari配置自动重新连接?

时间:2019-07-19 05:17:47

标签: spring-boot hikaricp

我们使用的是SpringBoot 2.1.x版本,因此Hikari是默认的DataSource实现。但是,我不确定在数据库维护/重启或网络连接出现问题后如何配置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将有助于自动重新连接到数据库吗?

1 个答案:

答案 0 :(得分:1)

来自HikariCP docs

  

connectionTestQuery

     

如果您的驱动程序支持JDBC4,我们强烈建议   建议不要设置此属性。这是针对“旧版”驱动程序的   不支持JDBC4 Connection.isValid()API。这是查询   该操作将在从以下位置向您提供连接之前执行   池以验证与数据库的连接仍然存在   活。再次,尝试运行不具有此属性HikariCP的池   如果您的驱动程序不兼容JDBC4,将记录错误   知道。默认值:无

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

相关问题