我使用具有以下设置的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
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
我找到了答案。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,我有: 但是我得到了以下例外: 出了什么问题?