Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot hikari池正在抛出超时_Spring Boot_Hikaricp - Fatal编程技术网

Spring boot hikari池正在抛出超时

Spring boot hikari池正在抛出超时,spring-boot,hikaricp,Spring Boot,Hikaricp,我使用的是spring boot 2.2.2.RELEASE,hikariversion3.4.1 在hikari 超时故障统计信息(总计=30,活动=1,空闲=29,等待=163) 有29个空闲连接,仍然发生超时故障。您可以尝试下面的配置吗,我们的QA环境中也存在同样的问题此配置每秒可处理50-100个请求,请保留空闲超时和最大生存期不变 private static DataSource pool; final HikariConfig config = new HikariConfig()

我使用的是spring boot 2.2.2.RELEASE,
hikari
version
3.4.1

hikari

超时故障统计信息(总计=30,活动=1,空闲=29,等待=163)


有29个空闲连接,仍然发生超时故障。

您可以尝试下面的配置吗,我们的QA环境中也存在同样的问题此配置每秒可处理50-100个请求,请保留空闲超时和最大生存期不变

private static DataSource pool;
final HikariConfig config = new HikariConfig();
config.setMinimumIdle(5);
config.setMaximumPoolSize(50);
config.setConnectionTimeout(10000);
config.setJdbcUrl(JDBC_URL);
config.setUsername(JDBC_USER);
config.setPassword(JDBC_PASS);

pool = new HikariDataSource(config); 

好的,我试试看。但为什么应用程序不能从池中获取连接呢。尽管其显示空闲连接为29,但另一个问题可能是连接泄漏,然后问题与HikariCP无关。有时,由于一些复杂的方法通过JPA存储库在DB中执行多个更改,所以问题仍然存在。由于某些原因,对这些接口的调用导致越来越多的“冻结”活动连接,耗尽了池。将这些方法注释为@Transactional或将所有逻辑封装在对事务服务方法的单个调用中都可以解决问题。但是活动连接不会冻结。由于活动连接只有一个,因此表示正在释放连接。空闲连接(即未使用的连接)显示总共30个连接中有29个。问题是随机出现的。应用程序在30分钟内无法获得连接,然后它自己更正了它的连接泄漏,因为连接正在被释放,它的确认。