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

我使用 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 个到实例的连接,但仅将一个连接放入连接池中。我该如何修复它?光版本是3.4.0


沧海一幻觉
浏览 125回答 2
2回答

摇曳的蔷薇

我找到了答案。Hikari 在 checkFailFast 方法中创建第一个连接。当找到如何禁用此方法时,我更新此评论。checkFailFast如果初始化失败超时<0,则不起作用。它帮助到我

ABOUTYOU

getConnection() hikari 尝试获取 2 个到实例的连接,但仅将一个连接放入连接池中。我该如何修复它?这种行为没有什么可修复的。它简单的意思是,打开了两个连接,其中一个关闭了。第二个连接被关闭的原因是您设置的setMinimumIdle(0),即池中没有维护任何空闲连接,并且所有空闲连接都被关闭。如果您想查看池中的两个连接,只需设置即可setMinimumIdle(1)。调用后,DataSource.getConnection()池中将有两个连接 - 一个是您的,另一个是空闲的。如果您根本不想打开第二个连接,请设置&nbsp;&nbsp;&nbsp;&nbsp;config.setMinimumIdle(&nbsp;1&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;config.setMaximumPoolSize(&nbsp;1&nbsp;);但三思而后行,为什么要用只有一个连接的连接池呢?无论如何,您可以稍后在池运行时增加这两个参数。&nbsp;HikariConfigMXBean&nbsp;bn&nbsp;=&nbsp;DataSource.ds.getHikariConfigMXBean() &nbsp;bn.setMaximumPoolSize(10) &nbsp;bn.setMinimumIdle(10)这将(不是立即)打开 9 个与数据库的附加连接。请注意,虽然设置&nbsp;MaximumPoolSize == MinimumIdle池中的连接数保持稳定,但没有连接打开或关闭,这可能是您想要观察的事情。测试Hicari 3.4.0与Oracle 12.2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java