主要配置java
一、dataSourceClassName
这是DataSource
JDBC驱动程序提供的类的名称。请查阅您的特定JDBC驱动程序的文档以获取此类名称,或参阅下表。注XA数据源不受支持。XA须要像bitronix这样的真正的事务管理器 。请注意,若是您正在使用jdbcUrl
“旧式”基于DriverManager的JDBC驱动程序配置,则不须要此属性 。 默认值:无git
二、jdbcUrl
该属性指示HikariCP使用“基于DriverManager的”配置。咱们认为基于DataSource的配置(上图)因为各类缘由(参见下文)是优越的,但对于许多部署来讲,几乎没有显着差别。 在“旧”驱动程序中使用此属性时,您可能还须要设置该 driverClassName
属性,但不要先尝试。 请注意,若是使用此属性,您仍然可使用DataSource属性来配置您的驱动程序,实际上建议您使用URL自己中指定的驱动程序参数。 默认值:无github
三、username
此属性设置从基础驱动程序获取链接时使用的默认身份验证用户名。请注意,对于DataSources,这经过调用DataSource.getConnection(*username*, password)
基础DataSource 以很是肯定的方式工做。可是,对于基于驱动程序的配置,每一个驱动程序都不一样。在基于驱动程序的状况下,HikariCP将使用此username
属性来设置传递给驱动程序调用的user
属性。若是这不是你所须要的,例如彻底跳过这个方法而且调用。 默认值:无Properties
DriverManager.getConnection(jdbcUrl, props)
addDataSourceProperty("username", ...)
数据库
四、password
此属性设置从基础驱动程序获取链接时使用的默认身份验证密码。请注意,对于DataSources,这经过调用DataSource.getConnection(username, *password*)
基础DataSource 以很是肯定的方式工做。可是,对于基于驱动程序的配置,每一个驱动程序都不一样。在基于驱动程序的状况下,HikariCP将使用此password
属性来设置传递给驱动程序调用的password
属性。若是这不是你所须要的,例如彻底跳过这个方法而且调用。 默认值:无Properties
DriverManager.getConnection(jdbcUrl, props)
addDataSourceProperty("pass", ...)
编程
经常使用配置后端
五、autoCommit
此属性控制从池返回的链接的默认自动提交行为。它是一个布尔值。 默认值:true框架
六、 connectionTimeout
此属性控制客户端(即您)将等待来自池的链接的最大毫秒数。若是在没有可用链接的状况下超过此时间,则会抛出SQLException。最低可接受的链接超时时间为250 ms。 默认值:30000(30秒)性能
七、 idleTimeout
此属性控制容许链接在池中闲置的最长时间。 此设置仅适用于minimumIdle
定义为小于maximumPoolSize
。一旦池达到链接,空闲链接将不会退出minimumIdle
。链接是否因闲置而退出,最大变化量为+30秒,平均变化量为+15秒。在超时以前,链接永远不会退出。值为0意味着空闲链接永远不会从池中删除。容许的最小值是10000ms(10秒)。 默认值:600000(10分钟)测试
八、 maxLifetime
此属性控制池中链接的最大生存期。正在使用的链接永远不会退休,只有在关闭后才会被删除。在逐个链接的基础上,应用较小的负面衰减来避免池中的大量消失。 咱们强烈建议设置此值,而且应该比任何数据库或基础设施规定的链接时间限制短几秒。 值为0表示没有最大寿命(无限寿命),固然是idleTimeout
设定的主题。 默认值:1800000(30分钟)优化
九、connectionTestQuery
若是您的驱动程序支持JDBC4,咱们强烈建议您不要设置此属性。这是针对不支持JDBC4的“传统”驱动程序Connection.isValid() API
。这是在链接从池中得到链接以确认与数据库的链接仍然存在以前将要执行的查询。再一次,尝试运行没有此属性的池,若是您的驱动程序不符合JDBC4的要求,HikariCP将记录一个错误以告知您。 默认值:无
十、minimumIdle
该属性控制HikariCP尝试在池中维护的最小空闲链接数。若是空闲链接低于此值而且链接池中的总链接数少于此值maximumPoolSize
,则HikariCP将尽最大努力快速高效地添加其余链接。可是,为了得到最佳性能和响应尖峰需求,咱们建议不要设置此值,而是容许HikariCP充当固定大小的链接池。 默认值:与maximumPoolSize相同
十一、maximumPoolSize
此属性控制池容许达到的最大大小,包括空闲和正在使用的链接。基本上这个值将决定到数据库后端的最大实际链接数。对此的合理价值最好由您的执行环境决定。当池达到此大小而且没有空闲链接可用时,对getConnection()的调用将connectionTimeout
在超时前阻塞达几毫秒。请阅读关于游泳池尺寸。 默认值:10
十二、metricRegistry
该属性仅经过编程配置或IoC容器可用。该属性容许您指定池使用的Codahale / Dropwizard 实例MetricRegistry
来记录各类指标。有关 详细信息,请参阅Metrics维基页面。 默认值:无
1三、healthCheckRegistry
该属性仅经过编程配置或IoC容器可用。该属性容许您指定池使用的Codahale / Dropwizard 的实例HealthCheckRegistry
来报告当前的健康信息。有关 详细信息,请参阅健康检查 wiki页面。 默认值:无
1四、poolName
此属性表示链接池的用户定义名称,主要出如今日志记录和JMX管理控制台中以识别池和池配置。 默认:自动生成
不经常使用配置
1五、 initializationFailTimeout
若是池没法成功初始化链接,则此属性控制池是否将“快速失败”。任何正数都取为尝试获取初始链接的毫秒数; 应用程序线程将在此期间被阻止。若是在超时发生以前没法获取链接,则会引起异常。此超时被应用后的connectionTimeout
期。若是值为零(0),HikariCP将尝试获取并验证链接。若是得到链接但未经过验证,将抛出异常而且池未启动。可是,若是没法得到链接,则会启动该池,但后续获取链接的操做可能会失败。小于零的值将绕过任何初始链接尝试,而且在尝试获取后台链接时,池将当即启动。所以,之后努力得到链接可能会失败。 默认值:1
1六、isolateInternalQueries
此属性肯定HikariCP是否在其本身的事务中隔离内部池查询,例如链接活动测试。因为这些一般是只读查询,所以不多有必要将它们封装在本身的事务中。该属性仅适用于autoCommit
禁用的状况。 默认值:false
1七、allowPoolSuspension
该属性控制池是否能够经过JMX暂停和恢复。这对于某些故障转移自动化方案颇有用。当池被暂停时,呼叫 getConnection()
将不会超时,并将一直保持到池恢复为止。 默认值:false
1八、readOnly
此属性控制默认状况下从池中获取的链接是否处于只读模式。注意某些数据库不支持只读模式的概念,而其余数据库则在Connection设置为只读时提供查询优化。不管您是否须要此属性,都将主要取决于您的应用程序和数据库。 默认值:false
1九、registerMbeans
该属性控制是否注册JMX管理Bean(“MBeans”)。 默认值:false
20、catalog
该属性设置默认目录为支持目录的概念数据库。若是未指定此属性,则使用由JDBC驱动程序定义的默认目录。 默认:驱动程序默认
2一、connectionInitSql
该属性设置一个SQL语句,在将每一个新链接建立后,将其添加到池中以前执行该语句。若是这个SQL无效或引起异常,它将被视为链接失败而且将遵循标准重试逻辑。 默认值:无
2二、driverClassName
HikariCP将尝试经过DriverManager仅基于驱动程序来解析驱动程序jdbcUrl
,但对于一些较旧的驱动程序,driverClassName
还必须指定它。除非您收到明显的错误消息,指出找不到驱动程序,不然请忽略此属性。 默认值:无
2三、transactionIsolation
此属性控制从池返回的链接的默认事务隔离级别。若是未指定此属性,则使用由JDBC驱动程序定义的默认事务隔离级别。若是您有针对全部查询通用的特定隔离要求,请仅使用此属性。此属性的值是从不断的名称Connection
类,如TRANSACTION_READ_COMMITTED
,TRANSACTION_REPEATABLE_READ
等 默认值:驱动程序默认
2四、 validationTimeout
此属性控制链接测试活动的最长时间。这个值必须小于connectionTimeout
。最低可接受的验证超时时间为250 ms。 默认值:5000
2五、 leakDetectionThreshold
此属性控制在记录消息以前链接可能离开池的时间量,代表可能存在链接泄漏。值为0意味着泄漏检测被禁用。启用泄漏检测的最低可接受值为2000(2秒)。 默认值:0
2六、 dataSource
此属性仅经过编程配置或IoC容器可用。这个属性容许你直接设置DataSource
池的实例,而不是让HikariCP经过反射来构造它。这在一些依赖注入框架中可能颇有用。当指定此属性时,dataSourceClassName
属性和全部DataSource特定的属性将被忽略。 默认值:无
2七、schema
该属性设置的默认模式为支持模式的概念数据库。若是未指定此属性,则使用由JDBC驱动程序定义的默认模式。 默认:驱动程序默认
2八、 threadFactory
此属性仅经过编程配置或IoC容器可用。该属性容许您设置java.util.concurrent.ThreadFactory
将用于建立池使用的全部线程的实例。在一些只能经过ThreadFactory
应用程序容器提供的线程建立线程的有限执行环境中须要它。 默认值:无
2九、 scheduledExecutor
此属性仅经过编程配置或IoC容器可用。该属性容许您设置java.util.concurrent.ScheduledExecutorService
将用于各类内部计划任务的实例。若是为ScheduledThreadPoolExecutor
实例提供HikariCP,建议setRemoveOnCancelPolicy(true)
使用它。 默认值:无