weblogic连接池重置(Connection reset)问题解决方案
In this Document
APPLIES TO:
Oracle webLogic Server - Version 10.3.6 to 10.3.6
Information in this document applies to any platform.
SYMPTOMS
Once a new connection pool is configured and testing is also successful, the managed server is restarted but it comes up in Admin State and shows JDBC error.
In the standard error, the following sequence of exceptions are shown:
::, Properties = user=;.> weblogic.common.ResourceException: Unknown Data Source GTEM_DSat weblogic.jdbc.common.internal.ConnectionPoolManager.shutdownConnectionPool(ConnectionPoolManager.java:630)at weblogic.jdbc.common.internal.ConnectionPoolManager.shutdownAndDestroyPool(ConnectionPoolManager.java:602)at weblogic.jdbc.common.internal.ConnectionPoolManager.shutdownAndDestroyPool(ConnectionPoolManager.java:533)at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:330)at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:173)at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:167)at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)at weblogic.application.internal.flow.ModuleStateDriver.prepare(ModuleStateDriver.java:38)at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:139)at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:57)at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:707)at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:237)at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:48)at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:66)at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:40)at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:191)at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:22)at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:166)at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:187)at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:95)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)> weblogic.application.ModuleException: at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:337)at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:173)at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:167)at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)at weblogic.application.internal.flow.ModuleStateDriver.prepare(ModuleStateDriver.java:38)at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:139)at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:57)at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:707)at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:237)at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:48)at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:66)at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:40)at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:191)at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:22)at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:166)at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:187)at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:95)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: IO Error: Connection resetat weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:288)at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1310)at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1227)at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:250)at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1397)at weblogic.jdbc.common.internal.ConnectionPool.start(ConnectionPool.java:187)at weblogic.jdbc.common.internal.ConnectionPoolManager.createAndStartPool(ConnectionPoolManager.java:521)at weblogic.jdbc.common.internal.ConnectionPoolManager.createAndStartPool(ConnectionPoolManager.java:442)at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:288)at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:173)at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:167)at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)at weblogic.application.internal.flow.ModuleStateDriver.prepare(ModuleStateDriver.java:38)at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:139)at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:57)at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:707)at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:237)at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:48)at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:66)at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:40)at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:191)at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:22)at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:166)at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:187)at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:95)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)>
CHANGES
It is a brand new DS. Default DS configuration level was applied:
GTEM_DS jdbc:oracle:thin:@[URL]:[PORT]:[DB] oracle.jdbc.OracleDriver user [USER] [ENCLIPTED VALUE] SQL SELECT 1 FROM DUAL GTEM_DS OnePhaseCommit
CAUSE
The issue is caused by the database not being able to respond to a large number of connections at the same time and hence throwing a connection reset.
SOLUTION
Please follow these steps to resolve the issue:
- 1.From the WLS admin console, select the datasource.
- 2.Under the connection pool tab, click on Advanced.
- 3.Check the "Enable Test Connections On Reserve" option.
- 4.Make "Login Delay" 1.
- 5.Make "Connection Creation Retry Frequency" 2.
- 6.Save the configuration.
- 7.Restart the Cluster.
REFERENCES
NOTE:1280894.1
- WebLogic Server (WLS) Support Pattern: Investigating JDBC Issues
来源: http://www.linuxidc.com/Linux/2017-10/147448.htm