java 强制释放 weblogic 10.3.4 中的连接
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5658093/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Force release the connection in weblogic 10.3.4
提问by Pedantic
I am getting following error in my managed server console on oracle soa server(11g).
我在 oracle soa 服务器 (11g) 上的托管服务器控制台中遇到以下错误。
--------------------
<Apr 14, 2011 10:51:37 AM SGT> <Warning> <JDBC> <BEA-001153> <Forcibly releasing inactive connection "weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@14267" back into the connect
ion pool "JDBC Data Source-0", currently reserved by: java.lang.Exception
at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:318)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:344)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:322)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:438)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:317)
at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93)
at weblogic.jdbc.common.internal.RmiDataSource.getPoolConnection(RmiDataSource.java:342)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:360)
at com.ura.dams.registration.dbcontrol.DBConnection.getConnection(DBConnection.java:35)
at com.ura.dams.registration.dbcontrol.SubmissionUploadDBImpl.executeSelect(SubmissionUploadDBImpl.java:786)
at com.ura.dams.registration.dbcontrol.SubmissionUploadDBImpl.getSubTypeAndApplTypeInd(SubmissionUploadDBImpl.java:159)
at com.ura.dams.registration.businesscontrol.UploadSubmissionImpl.getAcceptanceStatus(UploadSubmissionImpl.java:829)
at com.ura.dams.registration.process.RegistrationUpload.perform2(RegistrationUpload.java:121)
at orabpel.registrationupload.ExecLetBxExe3.execute(ExecLetBxExe3.java:139)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELxExecWMP.__executeStatements(BPELxExecWMP.java:42)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:162)
at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2465)
at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1132)
at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:73)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:219)
at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:327)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4350)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4281)
at com.collaxa.cube.engine.CubeEngine._createAndInvoke(CubeEngine.java:713)
at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:545)
at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:654)
at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:355)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.bea.core.repackaged.springframework.jee.intercept.MethodInvocationInvocationContext.proceed(MethodInvocationInvocationContext.java:104)
at oracle.security.jps.ee.ejb.JpsAbsInterceptor.run(JpsAbsInterceptor.java:88)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:414)
at oracle.security.jps.wls.JpsWeblogicEjbInterceptor.runJaasMode(JpsWeblogicEjbInterceptor.java:61)
at oracle.security.jps.ee.ejb.JpsAbsInterceptor.intercept(JpsAbsInterceptor.java:106)
at oracle.security.jps.ee.ejb.JpsInterceptor.intercept(JpsInterceptor.java:106)
at sun.reflect.GeneratedMethodAccessor813.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at com.bea.core.repackaged.springframework.jee.intercept.JeeInterceptorInterceptor.invoke(JeeInterceptorInterceptor.java:69)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy245.handleInvoke(Unknown Source)
at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.handleInvoke(BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.java:132)
at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:35)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:141)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:82)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
--------------------------------------
Can any one tell me why I am getting this error.
任何人都可以告诉我为什么我会收到此错误。
Following is my settings.
以下是我的设置。
- InActive Connection Timeout: 60
- Connection Reserve timeout: 20
- Initial capacity: 10
- Maximum CapacityL: 30
- 非活动连接超时:60
- 连接保留超时:20
- 初始容量:10
- 最大容量L:30
I am profiling the connection leak also and i have checked in my application that there is no open connection.
我也在分析连接泄漏,并且在我的应用程序中检查了没有打开的连接。
thanks,
谢谢,
采纳答案by Vladimir Dyuzhev
You have leaked a connection. Didn't close it. It became inactive, but not in the pool. After some time WLS noticed the fact that connection is in fact inactive, i.e. leaked, and forcefully closed it, returning it to the pool.
你泄露了一个连接。没有关闭它。它变得不活跃,但不在池中。一段时间后,WLS 注意到连接实际上处于非活动状态,即泄漏,并强行关闭它,将其返回到池中。
Here is the place where the connection was open:
这是连接打开的地方:
com.ura.dams.registration.dbcontrol.SubmissionUploadDBImpl.executeSelect(SubmissionUploadDBImpl.java:786)
Check the code to see how come close() wasn't called.
检查代码以了解如何没有调用 close() 。
回答by Nallamachu
As a work around I am telling this solution to do in the WLS. In WLS Data Source Configuration Inactive Connection Timeout configuration will be present under the advanced configuration. That we have to change it into the 0.
作为一种解决方法,我告诉这个解决方案在 WLS 中进行。在 WLS 数据源配置中,非活动连接超时配置将出现在高级配置下。我们必须将其更改为 0。
Steps to reach the inactive connection timeout is: Login into the WLS--> click on Data Source--> select Configurationtab --> click on the data_source name--> select Connection Poolunder the Configurationtab --> click on Advancedlink under the bottom of the page --> Change Inactive Connection Timeoutvalue to 0from any other value.
达到非活动连接超时的步骤是:登录WLS--> 单击数据源--> 选择配置选项卡 --> 单击数据源名称-->在配置选项卡下选择连接池--> 单击高级页面底部的链接 --> 将非活动连接超时值从任何其他值更改为0。
This configuration will remove all inactive connections means it will not wait to close connection when it will reach to inactive state. Hope this will help.
此配置将删除所有非活动连接,这意味着当它达到非活动状态时,它不会等待关闭连接。希望这会有所帮助。