Я получаю следующую ошибку:
java.sql.SQLException: закрытое соединение в oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112) в oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:146) по адресу oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:208) по адресу oracle.jdbc.driver.PhysicalConnection.getMetaData (PhysicalConneatis).sqlmap.engine.execution.SqlExecutor.moveToNextResultsSafely (SqlExecutor.java:348) в com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults (SqlExecutor.java:320 ).sql.ql.executeQueryProcedure (SqlExecutor.java:277) по адресу com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery (ПроцедураJava: 173) на com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList (GeneralStatement.java:123) по адресу com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList (SqlMapExecutorDelegate.java:614) по адресу com.ibatis.sqlmap.engine.impl.SqlMapExjeryDelegatelDelegDelegв com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList (SqlMapSessionImpl.java:118) в org.springframework.orm.ibatis.SqlMapClientTemplateSqlMapClientTemplate.execute (SqlMapClientTemplate.java:193) в org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult (SqlMapClientTemplate.java.hud.pih.eiv.web.authentication.AuthenticationUserDAO.isPihUserDAO (AuthenticationUserDAO.java:24) в gov.hud.pih.eiv.web.authorization.AuthorizationProxy.isAuthorized (AuthorizationProxy.java:125) в gh.h.eiv.web.authorization.AuthorizationFilter.doFilter (AuthorizationFilter.java:224) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:246) в
Я действительно озадачен и не могу понять, что может бытьвызывая эту ошибку.Я не могу воспроизвести ошибку на моей машине, но на производстве она появляется много раз.Я использую iBatis во всем приложении, поэтому нет шансов, что мой код не закроет соединения.
У нас есть хранимые процедуры, которые выполняются в течение длительного времени, прежде чем они возвращают результаты (около 15 секунд).
Есть ли у кого-нибудь идеи о том, что может быть причиной этого?Я не думаю, что повышение количества соединений на сервере приложений решит эту проблему, потому что если соединения заканчиваются, мы увидим «Ошибка при распределении соединений»
Пример кода:
this.setSqlMapClientTemplate(getSqlTempl());
getSqlMapClientTemplate().queryForList("authentication.isUserDAO", parmMap);
this.setSqlMapClientTemplate(getSqlTemplDW());
List results = (List) parmMap.get("Result0");
Я использую validate в моем пуле соединений.