当前位置: 首页 > 知识库问答 >
问题:

Hikari连接池在启动后创建两个连接

狄卓君
2023-03-14

我使用具有以下设置的Hikary连接池:

  HikariDataSource dataSource = new HikariDataSource();
        dataSource.setMinimumIdle(0);
        dataSource.setMaximumPoolSize(Integer.MAX_VALUE);
        dataSource.setJdbcUrl(jdbcConnectionString);
        dataSource.setConnectionTestQuery("select 1");
        dataSource.setIdleTimeout(TimeUnit.SECONDS.toMillis(60));
    dataSource.getConnection();

在getConnection()之后,hikari尝试获取到实例的2个连接,但只将一个连接放在连接池中。我怎样才能修好它?hikari版本是3.4。0

共有2个答案

程禄
2023-03-14

getConnection()后hikari尝试获得2个连接到实例,但在连接池只放一个连接。我怎么才能修好它?

这种行为没有什么可修复的。它的简单意思是,打开两个Conenction,关闭其中一个Conenction。

关闭第二个连接的原因是您设置了set最小化(0),即池中没有维护空闲连接,所有空闲连接都关闭了。

如果您想在池中看到这两个连接,请简单设置set最小化(1)。调用DataSource.getConnection()后,池中会有两个连接-一个是您的,一个是空闲的。

如果根本不想打开第二个连接,请设置

    config.setMinimumIdle( 1 );
    config.setMaximumPoolSize( 1 );

但请三思,为什么要使用只有一个连接的连接池呢。

您可以在池运行时增加这两个参数。

 HikariConfigMXBean bn = DataSource.ds.getHikariConfigMXBean()
 bn.setMaximumPoolSize(10)
 bn.setMinimumIdle(10)

这将(不是立即)打开9个到数据库的额外连接。

请注意,当设置MaximumPoolsize==最小化时,池中的连接数量保持稳定,没有打开或关闭连接,这可能是您要观察的事情。

使用Hicari 3.4进行测试。0和Oracle 12.2

巫马心水
2023-03-14

我找到了答案。Hikari在checkFailFast方法中创建第一个连接。我在找到如何禁用此方法时更新此注释。如果初始化失败超时,checkFailFast不起作用

 类似资料:
  • 我有这个使用HikariCP连接池的代码: 我通过发出命令“Show Processlist”来监控mysql中的连接,我看到在行之后创建了100个连接: 。。。正在运行。我肯定这不是命中注定的,对吧?它应该在稍后执行pooledDataSource时创建连接。getConnection()。 我做错了什么?为什么它会立即创建100个连接??

  • 我正在尝试使用ApacheDBCP2使用连接池。 我的最大总连接是5。我关闭每一个连接后,它被使用。 但在连接池中关闭5次连接后,我仍然获得连接。 关闭5个连接后,何时ping数据库以获取连接?或者,它将从连接池本身获取数据,而不访问数据库。 下面是我的示例代码片段。请纠正我对连池的理解。

  • 我有一个spring boot(2.4)应用程序,在长时间运行的jpa事务下,我看到很多连接超过了我的最大池大小,当我检查日志时,我看到连接被省略了,在新的HikariPools 2-3-4等之后。。。都打开了。我试过hikari 4.0。2个版本,但仍然是相同的问题。在这个场景中,给出最大池大小的含义是什么(每个池看起来都是我的最大池大小,但总连接数超过了我的限制)。是否有限制期初池数的配置?我

  • 我的服务器上有一个Spring启动项目。我有时会遇到“Hikari池连接不可用”错误。我想不出原因。我看起来有很多这样的问题。一些人建议关闭一些@交易。但是,在我的应用程序中,我没有使用任何@Transactional注释。以下是我的Hikari池配置: 当我检查我的卡塔琳娜。在日志文件外,我注意到活动连接数有时会增加。例如,昨天没有活动的连接。所有连接都处于空闲状态。现在池中有2个活动连接。是否

  • 我希望在我的Spring 4应用程序中使用Hikari连接池。数据库是Google CloudSQLPostgres数据库。 我在pom中有以下依赖项。xml: 在我的申请Context.xml,我有: 但是我得到了以下例外: 出了什么问题?