Hikari 数据源参数配置描述
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hikari 数据源参数配置描述相关的知识,希望对你有一定的参考价值。
参考技术A ###############################################hikari############################################spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.dataSourceClassName=
spring.datasource.url=jdbc: mysql://127.0.0.1:3306/test?characterEncoding=UTF8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.hikari.autoCommit=true
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=30000
spring.datasource.hikari.minimumIdle=
spring.datasource.hikari.maximumPoolSize=10
spring.datasource.hikari.maxLifetime=1800000
spring.datasource.hikari.connectionTestQuery=
spring.datasource.hikari.metricRegistry=
spring.datasource.hikari.healthCheckRegistry=
spring.datasource.hikari.poolName=hikariPool
##########################HikariCP不常用的配置#####################
spring.datasource.hikari.initializationFailTimeout=1
spring.datasource.hikari.isolateInternalQueries=false
spring.datasource.hikari.allowPoolSuspension=false
spring.datasource.hikari.readOnly=false
spring.datasource.hikari.registerMbeans=false
spring.datasource.hikari.connectionInitSql=
spring.datasource.hikari.driverClassName=com.mysql.jdbc.Driver
spring.datasource.hikari.validationTimeout=5000
spring.datasource.hikari.leakDetectionThreshold=0
spring.datasource.hikari.threadFactory=
spring.datasource.hikari.scheduledExecutor=
spring.datasource.hikari.catalog=
spring.datasource.hikari.schema=
如何在 Spring Boot 应用程序中使用 hikari 配置自动重新连接?
【中文标题】如何在 Spring Boot 应用程序中使用 hikari 配置自动重新连接?【英文标题】:How to configure auto reconnection with hikari in SpringBoot application? 【发布时间】:2019-11-28 01:31:11 【问题描述】:我们使用的是 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 - Connection is not available, request timed out after 30033ms.
任何其他 account.datasource.hikari.xxxxx 将有助于自动重新连接到数据库?
【问题讨论】:
【参考方案1】:来自 HikariCP docs:
连接测试查询
如果您的驱动程序支持 JDBC4,我们强烈 建议不要设置此属性。这适用于“传统”驱动程序 不支持 JDBC4 Connection.isValid() API。这是查询 这将在从给您提供连接之前执行 验证与数据库的连接是否仍然存在的池 活。再次尝试在没有此属性的情况下运行池 HikariCP 如果您的驱动程序不兼容 JDBC4 将记录一个错误以让您 知道。默认值:无
所以我建议验证您的 JDBC 驱动程序实际上是否符合 JDBC4。如果不是 - 设置上述属性。
【讨论】:
2019-07-19 08:26:24.158 --- com.zaxxer.hikari.HikariDataSource: HikariPool-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: HikariPool-1 - 启动完成。 谢谢。我在日志中没有看到任何错误,所以 JDBC 4 投诉,对吧? 我们发现了重新连接的问题。上述设置实际上负责自动重新连接。但是,我们内部存在网络服务器问题,导致了包括重新连接在内的各种问题。干得好 Hikari 数据源。以上是关于Hikari 数据源参数配置描述的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Boot 的 Mysql 的 Hikari 配置
配置(1):springboot yml配置连接池(druid,hikari),mybatis,json,log