处理HicariCP Oracle连接尝试

时间:2018-12-05 13:20:02

标签: java oracle jdbc hikaricp

我假设我具有与MaximumPoolSize(5)接近的默认HicariConfiguration。 我面临的问题是,即使第一个失败,也有很多尝试连接到数据库。我的意思是,例如,我将用于连接到Oracle的密码错误并且连接失败,但是随后我们又尝试了一次连接到数据库的尝试,从而锁定了该帐户。

问题:应该使用哪种HicariCP设置来限制最多1次尝试连接?

感谢您提供任何信息!

###更新

env.conf:

jdbc {
   test1 {
       datasourceClassName="oracle.jdbc.pool.OracleDataSource"
       dataSourceUrl=.....jdbc url
       dataSourceUser=USER
       dataSourcePassword=password
       setMaximumPoolSize = 5
       setJdbc4ConnectionTest = true
         }
}

通过ConfigFactory读取conf文件,并基于conf文件(setDriverClassName等)创建HicariConfig。 HikariConfig的输出:

autoCommit.....................true
connectionTimeOut..............30000
idleTimeOut....................600000
initializationFailFast.........false
isolateInternalQueries.........false
jdbc4ConnectionTest............test
maxLifetime....................1800000
minimumIdle....................5

1 个答案:

答案 0 :(得分:1)

https://github.com/brettwooldridge/HikariCP/issues/312,如本期末所述,HikariCP将继续尝试获取连接。它故意删除了acquireRetries参数。因此,方法是配置正确的用户名/密码,因为DB仅在身份验证失败后才锁定。

这里是从问题中摘录的。 HikariCP打算永远重试。

  

返回acquireRetries ...没有acceptRetries概念,如何   专用线程会继续尝试创建新的对象多长时间   连接? 永远。后台创建线程将继续   尝试将连接永久添加到池中,或者直到添加三个连接之一   满足条件: