频繁操作 出现的连接池无法获得 大家帮忙分析下

zhyou110z 2010-11-19 08:20:15


org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:104)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at com.xinhe.db.DBpool.getConnection(DBpool.java:23)
at com.xinhe.db.SubFileCategoryDAO.<init>(SubFileCategoryDAO.java:28)
at com.xinhe.action.FileCategoryAction.<init>(FileCategoryAction.java:38)
at sun.reflect.GeneratedConstructorAccessor27.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:123)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:154)
at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:143)
at com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:113)
at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:275)
at com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:365)
at com.opensymphony.xwork2.DefaultActionInvocation.access$000(DefaultActionInvocation.java:38)
at com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:83)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.<init>(DefaultActionInvocation.java:74)
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:958)
at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:84)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
... 35 more



快速频繁的操作 系统 出现 上面的异常


我数据源配置如下 用的是TOMCAT6.0


<Resource name="jdbc/DBpool"
auth="Container"
type="javax.sql.DataSource"
username="root"
password="root"
maxIdle="50"
maxAction="100"
maxWait="5000"
driverClassName="com.mysql.jdbc.Driver"
removeAbandoned="true"
removeAbandonedTimeout="30"
url="jdbc:mysql://localhost:3306/oasystem?useUnicode=true&characterEncoding=UTF-8"/>




主要原因 获得不到连接了 我调用的连接都写了关闭
高手帮我分析分析下 什么原因 具体有上面方法解决 先谢了~~!
...全文
223 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebaylong 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 blazingfire 的回复:]
记不清了,好像没有什么 maxAction吧?
改成maxActive
[/Quote]

支持。。。。
  • 打赏
  • 举报
回复
如果不是并发量过高,那就是代码有问题。

除了个频繁操作和一堆异常栈之外,没看到任何有价值的东西!
jingboshuo 2010-11-19
  • 打赏
  • 举报
回复
是不是 在工具类里 用完一个连接没有关闭连接啊
Jlins 2010-11-19
  • 打赏
  • 举报
回复
我估计是连接没有正常关闭的原因

dbcp 这个连接池不稳定
而且性能和反应速度 比c3p0差远了,我亲自测试过,,相同条件 并发300获取连接的情况下
zhyou110z 2010-11-19
  • 打赏
  • 举报
回复
嗯 这样好像可以了 这样系统的进程数可以达到很高
能具体分析下是 什么情况吗 谢谢!
blazingfire 2010-11-19
  • 打赏
  • 举报
回复
记不清了,好像没有什么 maxAction吧?
改成maxActive
blazingfire 2010-11-19
  • 打赏
  • 举报
回复
不要用dbcp,用c3p0吧

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧