You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Scott Zhu <sc...@gmail.com> on 2006/01/27 18:18:21 UTC

reset jdbc connection

   I'm using weblogic 8.1 in this case and transaction is managed by the
application server. Here's my configuration for the sql map:

   <transactionManager commitRequired="true" type="JDBC">
     <dataSource type="JNDI">
        <property name="DataSource" value="${dataSourceName}"/>
     </dataSource>
   </transactionManager>

If I shutdown the database and bring it back, then click on some links that
requires database access, I'd get the following exception sometimes:

java.sql.SQLException: Cannot obtain connection: driverURL =
jdbc:weblogic:pool:Campaign Barcelona, props = {enableTwoPhaseCommit=false,
connectionPoolID=Campaign Barcelona, jdbcTxDataSource=true,
dataSourceName=Campaign Data Source for partition1}.
Nested Exception: java.lang.RuntimeException: Failed to setAutoCommit to
true for pool connection.
 at weblogic.jdbc.wrapper.PoolConnection.init(PoolConnection.java:47)
 at weblogic.jdbc.pool.Driver.allocateConnection(Driver.java:254)
 at weblogic.jdbc.pool.Driver.connect(Driver.java:164)
 at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:509)
 at weblogic.jdbc.jts.Driver.connect(Driver.java:139)
 at weblogic.jdbc.common.internal.RmiDataSource.getConnection(
RmiDataSource.java:305)
 at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(
JdbcTransaction.java:48)
 at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(
JdbcTransaction.java:89)
 at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList
(GeneralStatement.java:123)
 at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(
SqlMapExecutorDelegate.java:610)
 at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(
SqlMapExecutorDelegate.java:584)
 at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(
SqlMapSessionImpl.java:101)
 at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(
SqlMapClientImpl.java:78)
...

It seemed like it's trying to use an old connection which is not valid any
more. I think I can try to enable "Test Reserved Connections" in weblogic to
test the connections periodically to avoid this. But this problem doesn't
seem to happen on raw jdbc access calls (not thru ibatis). So I wonder if
there's some setting in ibatis I need to do to fix this. Thanks for any
help.