小编Jus*_*inL的帖子

使用未包装的 oracle.jdbc.driver.T4CConnection 导致 HikariCP 连接泄漏

我在使用 HikariCP 和未包装连接时遇到资源泄漏问题。然后是代码的一些解释。

我必须使用展开的连接来访问 oracle.sql.BFILE 的 Oracle 方法。这是从 Oracle 目录中流式传输二进制文件。

数据源示例:

private static DataSource unwrapDatasource;
public static synchronized DataSource getUnwrappedDataSource() {
    if (unwrapDatasource == null) {
        HikariConfig config = new HikariConfig();
        config.setMaximumPoolSize(50);
        config.setLeakDetectionThreshold(120000);
        config.setJdbcUrl(DATABASEURL);
        config.addDataSourceProperty("user", USERNAME);
        config.addDataSourceProperty("password", DBPASSWORD);
        config.addDataSourceProperty("driverType", "thin");
        config.setDriverClassName("oracle.jdbc.pool.OracleDataSource");
        config.setMaxLifetime(300000);
        config.setPoolName("UNWRAP");
        unwrapDatasource = new HikariDataSource(config);
    }

    return unwrapDatasource;
}

  public static Connection getUnwrappedConnection() {
    Connection con = null;
    try {
        con = this.getUnwrappedDataSource().getConnection().unwrap(oracle.jdbc.driver.OracleConnection.class);
    } catch (SQLException ex) {
        //logger junk ommitted for brevity
    }
    return con;
}
Run Code Online (Sandbox Code Playgroud)

使用 …

java oracle memory-leaks jdbc hikaricp

4
推荐指数
1
解决办法
4992
查看次数

标签 统计

hikaricp ×1

java ×1

jdbc ×1

memory-leaks ×1

oracle ×1