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

This site uses Akismet to reduce spam. Learn how your comment data is processed.