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

Hikari. ActiveConntions的数量正在增加

商燕七
2023-03-14

我正在使用Hikari并连接到Oracle。
据我了解,连接应该通过 try-block 自动关闭。但不幸的是,每次调用后,活动连接都会增加。当它达到 100 时,我得到异常:

Java . SQL . sqltransientconnectionexception:HikariPool-2-连接不可用,请求在10001毫秒后超时。

[jconsole帮助我了解ActiveConnections的价值][1]

application.properties:

spring.datasource.hikari.register-mbeans = true
spring.datasource.hikari.driver-class-name = oracle.jdbc.pool.OracleDataSource
spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.idle-timeout=10000
spring.datasource.hikari.max-lifetime=30000
spring.datasource.hikari.maximum-pool-size=100
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.auto-commit=false

爪哇类:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;

@Autowired
private JdbcTemplate jdbcTemplate;

@Transactional
public String getFormButtons() {
    try (
            OracleConnection conn = jdbcTemplate.getDataSource().getConnection()
                                     .unwrap( OracleConnection.class );
            )
    {
        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    ...
    
}

pom.xml中的关键依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>4.0.3</version>
</dependency>
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.8.0.0</version>
    <type>jar</type>
</dependency>

请解释一下是什么问题。

UPD。我做了一些更正:

> changed spring.datasource.hikari.driver-class-name =

  • oracle.jdbc.pool.OracleDataSource
    to spring.datasource.hikari.driver-class-name
    = oracle.jdbc.OracleDriver.

    删除了工件@Transaction;

    使用 HikariDataSource 而不是 jdbcTemplate.getDataSource()

    @Autowired
    私人光数据源硬盘;

    尽管如此,每次调用后,活动连接的数量仍然会增加。

  • 共有1个答案

    尉迟宇定
    2023-03-14

    我找到了问题的解决方案。简而言之,我放弃了< code>try-with-resource语句,自己管理连接关闭。

     类似资料:
    • Sql Delta表和Database ricks Delta表有区别吗?看起来SQL我们在概念的基础上使用这个名字。存储Base表差异的表是Delta。对于数据库是一样的吗?

    • 问题内容: 我只是尝试使用sklearn.decomposition中的IncrementalPCA,但它像以前的PCA和RandomizedPCA一样引发了MemoryError。我的问题是,我要加载的矩阵太大,无法放入RAM。现在,它以形状〜(1000000,1000)的数据集形式存储在hdf5数据库中,因此我有1.000.000.000 float32值。我以为IncrementalPCA可

    • Spark中的任务数由阶段开始时的RDD分区总数决定。例如,当Spark应用程序从HDFS读取数据时,Hadoop RDD的分区方法继承自MapReduce中的,它受HDFS块的大小、的值和压缩方法等的影响。 截图中的任务花了7,7,4秒,我想让它们平衡。另外,阶段被分成3个任务,有什么方法可以指定Spark的分区/任务数吗?

    • 问题内容: 这是我的mysql查询 我想沿着边名选择一个增量计数器。所以预期的输出将是 问题答案: 这部分: 使得可以引入变量而无需单独的查询。因此,第一个查询也可以分为以下两个查询: 例如在存储过程中使用时。

    • 本文向大家介绍在Python列表中查找数量严格增加的组,包括了在Python列表中查找数量严格增加的组的使用技巧和注意事项,需要的朋友参考一下 有时我们可能需要评估列表中的元素是否严格递增。这意味着数字以1的间隔增加。在本文中,我们将了解如何在给定列表中找出严格增加的数字组。 直接比较 通过这种方法,我们逐渐增加每个数字的索引,并将其与列表中的先前数字进行比较。只要第二个数字比第一个大1,我们就会

    • 问题内容: 我正在做一些有关Java的研究,发现这很令人困惑: 这是永无止境的循环! 有人很好地解释了为什么会发生这种事情吗? 问题答案: 上面的循环与以下内容基本相同:- 3 次你的一部分声明- ,被评估为: - 您需要从此处删除分配,以使其起作用:- (根据评论的OP请求) 的行为:- 就注释中指定的问题而言,以下表达式的结果:- 获得如下:- 让我们标记第二条语句的不同部分:- 现在,首先将