The getConnection() method was from
com.ibatis.dao.client.template.JdbcDaoTemplate. I decided NOT to
extend JdbcDaoTemplate and write my own getConnection() method to get
around the problem. Life is good now.
-----Clinton Begin <[EMAIL PROTECTED]> wrote: -----
To: ibatis-user-java@incubator.apache.org
From: Clinton Begin <[EMAIL PROTECTED]>
Date: 01/18/2005 10:12AM
Subject: Re: Error accessing SimplePooledConnection. Connection has been invalidated
What is in getConnection() ???
Clinton
On Tue, 18 Jan 2005 09:28:56 -0600, [EMAIL PROTECTED]wrote:
> Can you mix DAO implementations? I am in a restrictive Oracle environment
> that prevents me from deploying the Default CLOB support using the Oracle 10
> JDBC drivers (which works great, by the way). The client's servers still
> have Oracle 8i drivers (go figure). I re-wrote the affected DAO as a JDBC
> DAO, but the code (below) results in the attached error. I'm not finding
> much help on the web. I tried changing to a JDBC transaction manager, but
> that broke my SqlMap DAOs.
>
> private void insert(ProductRequirement pr) {
> Connection conn = null;
> PreparedStatement stmt = null;
> try {
> daoManager.startTransaction();
> conn = getConnection();
> StringBuffer sql = new StringBuffer("INSERT INTO ");
> sql.append(" PRL_PRODUCT_REQ (PRODUCT_REQ_ID, DESCRIPTION,
> FILING_TYPES, PRODUCT_ID, ");
> sql.append(" PRODUCT_REQ_CAT_ID, PRL_STATE_ID,
> DATE_LAST_MODIFIED, USER_LAST_MODIFIED, ");
> sql.append(" DATE_CREATED, USER_CREATED) ");
> sql.append(" VALUES (?, EMPTY_CLOB(), ?, ?, ?, ?, ?, ?, ?,
> ?)");
> stmt = conn.prepareStatement(sql.toString()); <-- Fails here
>
> com.ibatis.common.exception.NestedRuntimeException: Error accessing
> SimplePooledConnection. Connection has been invalidated (probably released
> back to the pool).
> at
> com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.getValidConnection(SimpleDataSource.java:901)
> at
> com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:946)
> at $Proxy8.prepareStatement(Unknown Source)
> at
> com.serff.prl.dao.impl.OracleJdbcProductRequirementDAO.insert(OracleJdbcProductRequirementDAO.java:224)
> at
> com.serff.prl.dao.impl.OracleJdbcProductRequirementDAO.saveOrUpdate(OracleJdbcProductRequirementDAO.java:154)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:72)
> at $Proxy6.saveOrUpdate(Unknown Source)
> at
> com.serff.prl.dao.ProductRequirementTest.testProductRequirementCRUD(ProductRequirementTest.java:176)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
>
>