国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > JSP > 正文

dbcp 連接池不合理的鎖導致連接耗盡解決方案

2024-09-05 00:22:48
字體:
來源:轉載
供稿:網友

dbcp 連接池不合理的鎖導致連接耗盡解決方案

應用報錯,表象來看是連接池爆滿了。

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted    at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:241) ~[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE]    at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82) [dubbo-2.5.3.jar:2.5.3]    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_33]    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_33]    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_33]Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103) ~[commons-dbcp.jar:1.2.1]    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) ~[commons-dbcp.jar:1.2.1]    at com.eshore.crmpub.jdbc.datasource.MultiDataSource.getConnection(MultiDataSource.java:74) ~[crmpub-jdbc-1.0.jar:1.0]    at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:203) ~[spring-jdbc-3.2.2.RELEASE.jar:3.2.2.RELEASE]    ... 32 common frames omittedCaused by: java.util.NoSuchElementException: Timeout waiting for idle object    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1174) ~[commons-pool-1.6.jar:1.6]    at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:74) ~[commons-dbcp.jar:1.2.1]    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) ~[commons-dbcp.jar:1.2.1]    ... 35 common frames omitted

應用堆棧,幾十條線程都阻塞到dbcp池的PoolableConnectionFactory.makeObject方法了,此方法在等待0x0000000709a638a0對象鎖,但0x0000000709a638a0對象一直被其中一條線程執行PoolableConnectionFactory.makeObject時鎖了,而且這條線程獲取到鎖后還阻塞住了,所以導致后面幾十條線程都BLOCKED了。

"DubboServerHandler-132.121.95.136:28101-thread-300" daemon prio=10 tid=0x00007f02b4136800 nid=0x4954 waiting for monitor entry [0x00007f0286018000]  java.lang.Thread.State: BLOCKED (on object monitor)  at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)  - waiting to lock <0x0000000709a638a0> (a org.apache.commons.dbcp.PoolableConnectionFactory)  at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)  at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:74)  at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)  at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)  at com.eshore.crmpub.jdbc.datasource.MultiDataSource.getConnection(MultiDataSource.java:74)  at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:203)  at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:372)  at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:417)  at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:255)  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)  at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)  at com.eshore.crm.service.common.pub.aspect.DataSourceRouteAspect.around(DataSourceRouteAspect.java:74)  at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  at java.lang.reflect.Method.invoke(Method.java:597)  at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)  at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)  at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)  at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)  at com.eshore.crm.service.sysmgr.sca.impl.SysMgrServiceImpl$$EnhancerByCGLIB$$bfd71326.qryBulletinList(<generated>)  at com.alibaba.dubbo.common.bytecode.Wrapper101.invokeMethod(Wrapper101.java)  at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)  at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)  at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)  at com.eshore.crmpub.sca.dubbo.filter.BaseFilter.invoke(BaseFilter.java:90)  at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)  at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)  at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)  at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)  at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)  at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.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:662)  Locked ownable synchronizers:  - <0x000000070a120f00> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"DubboServerHandler-132.121.95.136:28101-thread-290" daemon prio=10 tid=0x00007f03203da800 nid=0x4948 runnable [0x00007f0286a22000]  java.lang.Thread.State: RUNNABLE  at java.net.SocketInputStream.socketRead0(Native Method)  at java.net.SocketInputStream.read(SocketInputStream.java:129)  at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:112)  at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:159)  at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:187)  - locked <0x0000000715a9ce70> (a com.mysql.jdbc.util.ReadAheadInputStream)  at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3140)  at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:597)  at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1085)  at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2494)  at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2527)  at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2309)  - locked <0x00000007159d1898> (a com.mysql.jdbc.JDBC4Connection)  at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)  at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)  at sun.reflect.GeneratedConstructorAccessor78.newInstance(Unknown Source)  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)  at java.lang.reflect.Constructor.newInstance(Constructor.java:513)  at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)  at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:419)  at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)  at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)  at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)  - locked <0x0000000709a638a0> (a org.apache.commons.dbcp.PoolableConnectionFactory)  at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)  at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:74)  at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)  at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)  at com.eshore.crmpub.jdbc.datasource.MultiDataSource.getConnection(MultiDataSource.java:74)  at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:203)  at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:372)  at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:417)  at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:255)  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)  at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)  at com.eshore.crm.service.common.pub.aspect.DataSourceRouteAspect.around(DataSourceRouteAspect.java:74)  at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  at java.lang.reflect.Method.invoke(Method.java:597)  at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)  at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)  at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)  at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631)  at com.eshore.crm.service.cachemgr.sca.common.DictCacheServiceImpl$$EnhancerByCGLIB$$e27e8e25.getDict(<generated>)  at com.alibaba.dubbo.common.bytecode.Wrapper93.invokeMethod(Wrapper93.java)  at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)  at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)  at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)  at com.eshore.crmpub.sca.dubbo.filter.BaseFilter.invoke(BaseFilter.java:90)  at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)  at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)  at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)  at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)  at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)  at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.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:662)  Locked ownable synchronizers:  - <0x000000070a0f9218> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

可以看到其實獲取鎖的線程是阻塞在這里了,做mysql握手包的時候一直在等待讀,阻塞在網絡IO了。

 java.lang.Thread.State: RUNNABLE  at java.net.SocketInputStream.socketRead0(Native Method)  at java.net.SocketInputStream.read(SocketInputStream.java:129)  at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:112)  at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:159)  at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:187)  - locked <0x0000000715a9ce70> (a com.mysql.jdbc.util.ReadAheadInputStream)  at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3140)  at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:597)  at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1085)  at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2494)  at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2527)  at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2309)

這個是dbcp1.x版本在創建新的連接對象時會把整個連接工廠類對象鎖了,一旦創建過程中發生阻塞就會導致整個池都死掉。這個問題很大。

解決方案,升級dbcp2.x版本或tomcat jdbc或druid連接池,推薦druid連接池,功能強大自帶監控。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
波多野结衣中文字幕久久| www在线视频| 国产免费黄视频在线观看| 国产福利在线免费观看| 国产成在线观看免费视频| 国内精品一区视频| 国产www网站| 99热播在线观看| 国产二级片在线| 国产精品777一区二区| 国产69精品久久久久孕妇国产69久久| 午夜性爽视频男人的天堂| 九九99九九精彩| 国产精品美女一区二区视频| 免费在线看v| 亚洲国产成人综合| 精品中文字幕不卡在线视频| 黄色毛片在线观看| 黄色毛片在线| 国产偷激情在线| 在线中文资源天堂| 在线亚洲电影| 在线视频中文字幕| 国产黄色片在线播放| 亚洲国产日韩成人综合天堂| 夜夜爽夜夜操| 国产理论电影在线| 成网站在线观看人免费| 日本动漫同人动漫在线观看| av免费在线播放| 免费在线超碰| h网站免费在线观看| 国产色在线 com| 精品网站www| www黄在线观看| 超碰免费在线播放| 日本h视频在线观看| 麻豆av电影在线观看| 精品a在线观看| 欧美日韩一区二区三区在线播放| 免费a在线观看| 久热精品免费视频| 国产日产一区二区| 69国产精品视频| 激情综合网五月激情| 国产精品伦理一区二区三区| 在线视频中文字幕| 国产激情在线观看| 国产精品视频一区二区久久| 午夜av在线播放| 中文字幕在线免费| www在线视频| 免费日本黄色| 国产a级网站| 国产免费av网站| 精品亚洲综合| www.三级.com| 国产在线播放av| www中文字幕在线观看| av中文网站| 国产精品美女视频免费观看软件| 91高清国产| 国内精品一区视频| 国产youjizz在线| 九九热在线观看视频| 国产三区视频在线观看| 国产二区视频| yjizz视频网站在线播放| 亚洲私人影吧| 在线视频福利| 中文字幕国产视频| 国产精品视频一区麻豆| 黄色在线视频观看网站| 黄污在线观看| 免费国产视频| 国产传媒在线播放| 大香伊人中文字幕精品| 精品一区二区三区高清免费不卡 | 欧美精品小视频| 91久久精品国产性色| 日p在线观看| av在线天天| 中文字幕2019第三页| 成人欧美亚洲| 天天操天天曰| 国产网站免费观看| 国产黄色免费看| 懂色一区二区三区| 一本大道久久a久久精品| 亚洲天堂影院在线观看| 快射av在线播放一区| 国产成人综合亚洲欧美在| 欧美大交乱xxxx| 91在线最新| 精品国产免费观看一区| 国产精品外围在线观看| 国产女呦网站| 亚洲国产精品区| 88av在线| 国产探花视频在线观看| 懂色一区二区三区| 国产在线小视频| 在线国产小视频| 久久精品视频免费看| 激情五月色综合亚洲小说| 黄色国产网站在线播放| 2019中文字幕在线视频| 久久久久久国产视频| 不卡av免费观看| 国产精品69xx| 国产麻豆精品视频一区二区| 国产女人在线观看| 午夜av在线免费观看| 男人天堂网在线观看| xxxx视频在线| 99精品老司机免费视频| 国产美女视频网站| 麻豆精品免费视频入口| 国产精品入口麻豆免费看| 黄色国产网站在线播放| 国产黄色大片在线观看| www.九九热.com| 免费在线黄色av| 毛片网站在线观看| 高清av中文在线字幕观看1| 国产黄色在线网站| 超碰国产在线| 在线国产小视频| 中文字幕av网| 91精品国产91久久久久久青草| 国产精品666| 精品国语对白精品自拍视| 精品三级久久久久久久电影聊斋| www.夜夜操.com| 国产黄色片在线播放| 久久av少妇| 一级黄色av| 精品一区二区在线欧美| 国产理论电影在线观看| 免费观看久久久久| 黄色电影网站在线观看| 九色视频网站| 影音先锋在线中文字幕| 国产一卡2卡3卡四卡网站| 热99re久久精品精品免费| 激情综合丁香| 日本三级在线视频| 国产欧美黑人| 96精品视频| 国产小视频在线高清播放| 国产区成人精品视频| 国产女呦网站| 天天av天天爽| 在线观看av网站永久| 伊人网在线视频| 69av二区| 中文字幕国产视频| 免费看ww视频网站入口| 久草视频国产| 国产九色视频| 亚洲综合在线不卡| 国产精品久久久久久福利| 国产在线高清理伦片a| 国产99re| 日韩a视频在线观看| 国产男女av| 国产探花视频在线观看| 国产无遮挡在线视频免费观看| 国产精品入口麻豆免费看| 国产精品自产拍在线观看2019 | 国产娇喘精品一区二区三区图片| 欧美精品日韩少妇| 成人午夜无人区一区二区| 国产不卡视频| 精品无人乱码| 国产激情在线视频| 国产一级片麻豆| 国产69精品久久久久孕妇国产69久久 | 影音av资源站| 国产亚洲精品自在线观看| 国产精品被窝福利一区 | 国产深夜福利| 黄色毛片在线观看| 亚洲永久免费网站| 96久久久久久| 中文视频在线| 四虎免费播放| 国产日产一区二区| 久热国产在线视频| 91极品在线| 国产视频二区| 欧美日韩国产亚洲沙发| 国产性一级片| 国产福利av网站| 欧美视频免费一区二区三区| 国产精品jvid在线观看| 中文字幕免费在线视频| 激情四房婷婷| 久久五月精品中文字幕 | 综合激情丁香|