Creating ADFc Savepoint Fails With SQLException: Connection has been administratively destroyed. Reconnect. (Doc ID 1347933.1)

Last updated on AUGUST 05, 2016

Applies to:

Oracle JDeveloper - Version 11.1.1.0.0 to 11.1.2.0.0
Information in this document applies to any platform.

Symptoms

Your application uses the savepoint feature of ADF Controller.
After the database is shutdown and restarted, no more savepoint can be created.
It fails with one of the following exceptions (among others):

...
Caused by: java.sql.SQLException: Connection has been administratively destroyed. Reconnect.
at weblogic.jdbc.common.internal.ConnectionEnv.checkIfEnabled(ConnectionEnv.java:946)
at weblogic.jdbc.wrapper.PoolConnection.checkConnection(PoolConnection.java:59)
at weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java:94)
at weblogic.jdbc.wrapper.Connection.prepareCall(Connection.java:543)
at oracle.adfinternal.controller.savepoint.SavePointDBPersistManager.insertSavePoint(SavePointDBPersistManager.java:222)
at oracle.adfinternal.controller.savepoint.DBSavePointManagerImpl.storeSavePoint(DBSavePointManagerImpl.java:126)
at oracle.adfinternal.controller.savepoint.SavePointManagerImpl.storeSavePoint(SavePointManagerImpl.java:263)
at oracle.adfinternal.controller.savepoint.SavePointManagerImpl.createAndStoreSavePoint(SavePointManagerImpl.java:229)
at oracle.adfinternal.controller.savepoint.SavePointManagerImpl.createSavePoint(SavePointManagerImpl.java:171)
at oracle.adfinternal.controller.savepoint.SavePointManagerImpl.createSavePoint(SavePointManagerImpl.java:108)
at oracle.adfinternal.controller.state.RootViewPortContextImpl.createSavePoint(RootViewPortContextImpl.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...


or

...
oracle.jbo.RowNotFoundException: JBO-25060: Unexpected error encountered while trying to retrieve the next row from JDBC ResultSet for collection DeptView1
at oracle.jbo.server.QueryCollection.hasNextInResultSet(QueryCollection.java:4772)
at oracle.jbo.server.ViewObjectImpl.hasNextForCollection(ViewObjectImpl.java:7178)
at oracle.jbo.server.QueryCollection.hasNext(QueryCollection.java:4653)
...

java.sql.SQLRecoverableException: No more data to read from socket
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1204)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1153)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:312)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1168)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:628)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:490)
at oracle.jbo.server.QueryCollection.hasNextInResultSet(QueryCollection.java:4685)
...

RowNotFoundException: JBO-25060: Unexpected error encountered while trying to retrieve the next row from JDBC ResultSet for collection DeptView1
at oracle.jbo.server.QueryCollection.hasNextInResultSet(QueryCollection.java:4772)
at oracle.jbo.server.ViewObjectImpl.hasNextForCollection(ViewObjectImpl.java:7178)
at oracle.jbo.server.QueryCollection.hasNext(QueryCollection.java:4653)
at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3593)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3423)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2173)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5115)
at oracle.jbo.server.ViewRowSetIteratorImpl.getRowInternal(ViewRowSetIteratorImpl.java:3427)
at oracle.jbo.server.ViewRowSetIteratorImpl.hasNext(ViewRowSetIteratorImpl.java:1913)
...


or

...
<Warning> <JDBC> <BEA-001153> <Forcibly releasing inactive connection "weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@5" back into the connection pool "<yourConnectionName>", currently reserved by: null.>
oracle.jbo.DMLException: JBO-26061: Error while opening JDBC connection.
    at oracle.jbo.server.DBTransactionImpl.establishNewConnection(DBTransactionImpl.java:1007)
    at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1147)
    at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:6838)
    at oracle.jbo.server.DBTransactionImpl.reconnect(DBTransactionImpl.java:5573)
    at oracle.jbo.common.ampool.DefaultConnectionStrategy.reconnect(DefaultConnectionStrategy.java:258)
    at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolReconnect(ApplicationPoolMessageHandler.java:596)
    at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:399)
    at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:8942)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4602)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2532)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2342)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3241)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:571)
    ...
Caused by: java.sql.SQLException: Cannot obtain connection: driverURL = jdbc:weblogic:pool:<yourConnectionName>, props = {applicationName=<yourApplicationName>, connectionPoolScope=application, EmulateTwoPhaseCommit=false, moduleName=<yourConnectionName>, connectionPoolID=<yourConnectionName>, jdbcTxDataSource=true, LoggingLastResource=false, dataSourceName=<yourConnectionName>}.
Nested Exception: java.lang.RuntimeException: Failed to setAutoCommit to true for pool connection.
    at weblogic.jdbc.wrapper.PoolConnection.init(PoolConnection.java:50)
    at weblogic.jdbc.pool.Driver.allocateConnection(Driver.java:257)
    at weblogic.jdbc.pool.Driver.connect(Driver.java:164)
    at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:651)
    at weblogic.jdbc.jts.Driver.connect(Driver.java:127)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364)
    at oracle.jbo.server.DBTransactionImpl.establishNewConnection(DBTransactionImpl.java:968)
    ...
## Detail 0 ##
java.sql.SQLException: Cannot obtain connection: driverURL = jdbc:weblogic:pool:<yourConnectionName>, props = {applicationName=<yourApplicationName>, connectionPoolScope=application, EmulateTwoPhaseCommit=false, moduleName=<yourConnectionName>, connectionPoolID=<yourConnectionName>, jdbcTxDataSource=true, LoggingLastResource=false, dataSourceName=<yourConnectionName>}.
Nested Exception: java.lang.RuntimeException: Failed to setAutoCommit to true for pool connection.
    at weblogic.jdbc.wrapper.PoolConnection.init(PoolConnection.java:50)
    at weblogic.jdbc.pool.Driver.allocateConnection(Driver.java:257)
    at weblogic.jdbc.pool.Driver.connect(Driver.java:164)
    at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:651)
    at weblogic.jdbc.jts.Driver.connect(Driver.java:127)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364)
    at oracle.jbo.server.DBTransactionImpl.establishNewConnection(DBTransactionImpl.java:968)
    at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1147)
    at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:6838)
    at oracle.jbo.server.DBTransactionImpl.reconnect(DBTransactionImpl.java:5573)
    ...

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms