Java JDBC 连接和 Oracle

标签 java oracle jdbc connection-pooling

我有一个场景,问题如下

应用程序服务器有两个到数据库的连接池。 AB

A 指向 -> DatabaseA -> 有 128 个连接

A 具有存储过程,可通过 DB 链接 访问驻留在 DatabaseB 中的表

B 指向 -> DatabaseB -> 有 36 个连接

现在假设 Java 代码使用连接池 A 调用 DatabaseA 中的存储过程。此存储过程正在通过数据库链接从 DatabaseB

获取数据

问题:

基于这种情况,如果我们在前端收到连接关闭错误。是否可以这样说:即使 java 从池 A (128) 调用 SP(在 DatabaseA 中),但由于 SP 从 DatabaseB 获取数据,因此数据量较少连接数 (36)。

基本上我想知道数据何时通过这样的数据库链接传送...它是否会减少分配给池 B 的 36 个连接指向 DatabaseB?

完全异常(exception) 我得到的确切异常是: --- Cause: java.sql.SQLException: Closed Connection

一些堆栈跟踪:

Caused by: java.sql.SQLException: Closed Connection at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:614) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:588) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:268) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:193) at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:219) at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:266)

另外,我正在使用 iBatis ...所以没有 try..catch..finally block

最佳答案

存储过程正在数据库中运行;当它与其他数据库建立连接时,它会建立直接连接,并且不会通过应用程序服务器的池。事实上,它可以与链接到 A 的任何数据库建立连接,无论应用服务器是否维护该数据库的连接池。

关于Java JDBC 连接和 Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978292/

相关文章:

sql - 同一列上的不同值计数

oracle - Oracle 规则管理器和表达式过滤器是否基于现有标准?

mysql - 在 Apache Spark 2.0.0 中,是否可以从外部数据库获取查询(而不是获取整个表)?

java - 如何在嵌入式 Tomcat 8 中配置 JDBC 资源?

java - 如何在回家后重新进入应用程序时运行代码(Android)

java - 将 SimpleDateFormat 解析为 JodaTime

java - JavaFX WebEngine 中的 HyperlinkListener

java - 在 ubuntu 10 64 位上安装 java 时出错

sql - 获取日期差为一的行

java - Linux环境下Mule应用与mysql数据库的数据库连接问题