【发布时间】:2019-10-09 05:50:09
【问题描述】:
/* connection pool created with 5 connections based on the region specific.
with below code it will get connection from connection pool which is already created.*/
Connection con = DatasourceClient.getDataSourceMap.get(region).getConnection();
OracleConnection oConn = con.unwrap(oracle.jdbc.OracleConnection.class);
上面的代码会从池中获得两个连接,我需要关闭 con 和 Oconn 吗?
我正在通过更改池属性尝试多种方法来耗尽池并且连接关闭异常。 所以只想知道上面的代码在做什么。
尝试关闭上述连接,但没有得到任何不同的结果。
使用 Oracle Jdbc 模板而不是 spring jdbc,因为在我的程序中有数组值,在少数情况下仅输入,在某些情况下仅输出,而其他两个 INOUT。
有人可以帮我吗?谢谢。
【问题讨论】:
-
当您手动处理
Connection对象时,您还需要关闭它们。关闭外部连接应该没问题,因为它最初会委托给OracleConnection,最终结果应该是它应该返回到池中。但是,我建议将其设置为透明并使用AbstractRoutingDataSource之类的东西来自动选择您需要的DataSource并让 Spring 处理打开/关闭连接的所有困难(是的,您仍然可以使用 Spring 管理的连接unwrap)。
标签: java oracle spring-boot jdbc