java.sql.Exception 关闭连接

标签 java oracle jdbc ibatis

我收到以下错误:

java.sql.SQLException: Closed Connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at oracle.jdbc.driver.PhysicalConnection.getMetaData(PhysicalConnection.java:1508) at com.ibatis.sqlmap.engine.execution.SqlExecutor.moveToNextResultsSafely(SqlExecutor.java:348) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:320) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:277) at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) 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) at gov.hud.pih.eiv.web.authentication.AuthenticationUserDAO.isPihUserDAO(AuthenticationUserDAO.java:24) at gov.hud.pih.eiv.web.authorization.AuthorizationProxy.isAuthorized(AuthorizationProxy.java:125) at gov.hud.pih.eiv.web.authorization.AuthorizationFilter.doFilter(AuthorizationFilter.java:224) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at

我真的很困惑,无法弄清楚是什么导致了这个错误。我无法在我的机器上重现错误,但在生产中它会出现很多次。我在整个应用程序中使用 iBatis,因此我的代码不可能不关闭连接。

我们确实有在返回结果之前运行很长时间(大约 15 秒)的存储过程。

有没有人知道可能导致这种情况的原因?我认为提高应用程序服务器上的连接数不会解决此问题,因为如果连接用完,我们会看到“分配连接时出错”

示例代码片段:

this.setSqlMapClientTemplate(getSqlTempl());
getSqlMapClientTemplate().queryForList("authentication.isUserDAO", parmMap);
this.setSqlMapClientTemplate(getSqlTemplDW());
List results = (List) parmMap.get("Result0");

我在我的连接池中使用验证。

最佳答案

根据堆栈跟踪,可能的原因是在生成 ResultSet 的 Connection 上调用 close() 之后您继续使用 ResultSet。

关于java.sql.Exception 关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2985849/

相关文章:

java - 如何在android中将所有位图图像发送到sdcard

oracle - 如何从 Oracle 中的 select 语句调用带有 Rowtype 参数的函数

java - 如何在 C3P0 中配置连接存在性检查?

java - 如何让 Activity 后退按钮返回 fragment ?

java - java中的String有长度限制吗?

java - 缺少 Artifact com.oracle :ojdbc14:jar:10. 2.0.1.0

java - MMORPG 中的 JPA、JDBC 与 NoSQL

java - 使用 postgres 独立启动 jackrabbit

java - 使用 Java 对点列表进行排序

sql - Oracle 10g 范围分区查询