Connection has been administratively destroyed. Reconnect

If you are getting below errors in log files then follow the steps mentioned here to fix

...
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 "weblog[email protected]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)
...

OR

at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeploy(DeployProcessor.java:99)
at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.process(DeployProcessor.java:81)
at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPostInsideLoggingSession(CompositeDeployerServlet.java:219)
at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPost(CompositeDeployerServlet.java:130)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:164)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.sql.SQLException: Connection has been administratively destroyed. Reconnect.
at weblogic.jdbc.common.internal.ConnectionEnv.checkIfEnabled(ConnectionEnv.java:1024)
at weblogic.jdbc.wrapper.PoolConnection.checkConnection(PoolConnection.java:63)
at weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java:100)
at weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:545)
at oracle.mds.internal.persistence.db.BaseReposAccess.getPath(BaseReposAccess.java:1626)
at oracle.mds.internal.persistence.db.BaseDBMSConnection.getStoreDocument(BaseDBMSConnection.java:1865)
at oracle.mds.internal.persistence.BufferedMSConnection.getStoreDocument(BufferedMSConnection.java:406)
at oracle.mds.persistence.MetadataStoreConnection.getDocument(MetadataStoreConnection.java:381)
at oracle.mds.persistence.PManager.getDocument(PManager.java:622)
at oracle.mds.internal.persistence.PersistenceUtils.createOrSaveDocument(PersistenceUtils.java:483)
at oracle.mds.internal.transfer.InternalMDSTransfer.transferDocument(InternalMDSTransfer.java:3707)
at oracle.mds.internal.transfer.InternalMDSTransfer.transferTransferUnit(InternalMDSTransfer.java:3485)
at oracle.mds.internal.transfer.InternalMDSTransfer.transferTransferUnitList(InternalMDSTransfer.java:3365)
at oracle.mds.internal.transfer.InternalMDSTransfer.execute(InternalMDSTransfer.java:1990)
at oracle.mds.internal.transfer.InternalMDSTransfer.execute(InternalMDSTransfer.java:1666)
at oracle.mds.internal.transfer.InternalMDSTransfer.transfer(InternalMDSTransfer.java:465)
at oracle.integration.platform.blocks.deploy.servlet.MDSManager.transferSharedData(MDSManager.java:560)
at oracle.integration.platform.blocks.deploy.servlet.BaseDeployProcessor.deploySharedData(BaseDeployProcessor.java:383)
at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeployWork(DeployProcessor.java:160)
at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeployWork(DeployProcessor.java:112)
at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeploy(DeployProcessor.java:100)
at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.process(DeployProcessor.java:81)
at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPostInsideLoggingSession(CompositeDeployerServlet.java:219)
at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPost(CompositeDeployerServlet.java:130)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:164)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

The “java.sql.SQLException: Connection has been administratively destroyed.” is expected:
the DB was shutdown; even if it was restarted later, the JDBC connection are pointing to DB processes
that have been destroyed.

You need to restart your WebLogic Server to recreate new JDBC connections.
All the current transactions are lost, as the database was shutdown.

High availability of your RDBMS is required to minimize this issue.

 

In case of any ©Copyright or missing credits issue please check CopyRights page for faster resolutions.

2 Responses

  1. intery89 says:

    I got an issue when i use JMeter to test my application. the error shows:

    The connection has been administratively destroyed. Reconnect.

    Can you give me some advices about this issue. thx a lot.

Leave a Reply