Send your row handler.
Sent from my iPhone
On Oct 2, 2009, at 8:13 AM, "Givler, Eric" <egiv...@state.pa.us> wrote:
I have an OC4J container and am experiencing a connection leak log
in my server logs:
09/09/29 17:46:10 OrionCMTConnection not closed, check your code!
09/09/29 17:46:10 Logical connection not closed, check your code!
09/09/29 17:46:10 (Use -Djdbc.connection.debug=true to find out
where the leaked connection was created)
I don't want to point fingers, but when I turn on -
Dtransaction.debug trace, it will show the stack trace of what
caused the leak:
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.isClosed(): end---
this.closed = false
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.isClosed(): end
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.finalize():
begin---this:: com.evermind.sql.orioncmtconnectionfinal...@2dbcf0
is NOT Closed
09/10/01 13:04:35 OrionCMTConnection not closed, check your code!
09/10/01 13:04:35 Logical connection not closed, check your code!
09/10/01 13:04:35 Created at:
09/10/01 13:04:35 java.lang.Throwable: OrionCMTConnection created
09/10/01 13:04:35 at com.evermind.sql.OrionCMTConnection.<init>
(OrionCMTConnection.java:121)
09/10/01 13:04:35 at
com.evermind.sql.OrionCMTConnectionFinalize.<init>
(OrionCMTConnectionFinalize.java:42)
09/10/01 13:04:35 at
com.evermind.util.ClassOptimizerFactory.getOrionCMTConnection
(ClassOptimizerFactory.java:80)
09/10/01 13:04:35 at
com.evermind.sql.OrionCMTDataSource.getConnection
(OrionCMTDataSource.java:237)
09/10/01 13:04:35 at
com.evermind.sql.OrionCMTDataSource.getConnection
(OrionCMTDataSource.java:217)
09/10/01 13:04:35 at
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init
(JdbcTransaction.java:48)
09/10/01 13:04:35 at
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(
JdbcTransaction.java:89)
09/10/01 13:04:35 at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithRowHandler(
GeneralStatement.java:133)
09/10/01 13:04:35 at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryWithRowHandler(
SqlMapExecutorDelegate.java:649)
09/10/01 13:04:35 at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryWithRowHandler
(SqlMapSessionImpl.java:156)
09/10/01 13:04:35 at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryWithRowHandler
(SqlMapClientImpl.java:133)
09/10/01 13:04:35 at
model.persistence.dao.ApplicationDaoImpl.getUnderminedDetails
(ApplicationDaoImpl.java:335)
09/10/01 13:04:35 at view.LOVCreator.contextInitialized
(LOVCreator.java:52)
09/10/01 13:04:35 at
com.evermind.server.http.HttpApplication.initDynamic
(HttpApplication.java:1009)
09/10/01 13:04:35 at
com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:
549)
09/10/01 13:04:35 at
com.evermind.server.Application.getHttpApplication(Application.java:
890)
09/10/01 13:04:35 at
com.evermind.server.http.HttpServer.getHttpApplication
(HttpServer.java:707)
09/10/01 13:04:35 at
com.evermind.server.http.HttpSite.initApplications(HttpSite.java:625)
09/10/01 13:04:35 at
com.evermind.server.http.HttpSite.setConfig(HttpSite.java:278)
09/10/01 13:04:35 at
com.evermind.server.http.HttpServer.setSites(HttpServer.java:278)
09/10/01 13:04:35 at
com.evermind.server.http.HttpServer.setConfig(HttpServer.java:179)
09/10/01 13:04:35 at
com.evermind.server.ApplicationServer.initializeHttp
(ApplicationServer.java:2394)
09/10/01 13:04:35 at
com.evermind.server.ApplicationServer.setConfig
(ApplicationServer.java:1551)
09/10/01 13:04:35 at
com.evermind.server.ApplicationServerLauncher.run
(ApplicationServerLauncher.java:92)
09/10/01 13:04:35 at java.lang.Thread.run(Thread.java:619)
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.close(): begin---
this = com.evermind.sql.orioncmtconnectionfinal...@2dbcf0
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.close(): begin
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.close(): begin---
this.closed = false
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.close(): end---
Already closed:: com.evermind.sql.orioncmtconnectionfinal...@2dbcf0
09/10/01 13:04:35 Thr[thread 5]-OrionCMTConnection.finalize(): end
getUnderminedDetails is using a RowHandler if that makes any
difference.
This is with IBATIS 2.3.0.677 (the latest one we can use against our
current Java 1.4.2 Oracle 10G 10.1.2 Application Server). The
database is an Oracle 10gR2 instance as well.
Any help would be appreciated. I tried stepping the code, and I'm
just not clear as to what's going on regarding the JdbcTransaction
and how the connections are being started/ended automatically.
The SQLMapConfig.xml's tx entry looks like this:
<transactionManager type="JDBC">
<dataSource type="JNDI">
<property name="DataSource" value="java:comp/env/jdbc/
MyUserDS" />
</dataSource>
</transactionManager>
Thanks,
Eric
Eric Givler
Application Developer
Department of Environmental Protection/BIT
400 Market Street/3rd Floor
PO Box 8761
Harrisburg, PA 17105-8761
PH (717) 772-0138, FAX (717) 772-1676
egiv...@state.pa.us