起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 335|回复: 15

类未注册:org.apache.tomcat.dbcp.dbcp.SQLNestedException**

[复制链接]
发表于 2008-7-11 10:47:00 | 显示全部楼层 |阅读模式
类未注册:org.apache.tomcat.dbcp.dbcp.SQLNestedException

出错频率高,持续时间短(几分钟后系统就正常了),这个问题始终未解决:


1、配置文件如下
<Resource name="x3Sys" url="jdbc:jtds:sqlserver://...:.../XXXDB"
        username="XXX"
        password="XXX"
        maxIdle="50"
        MaxActive="2000"
        maxWait="5000"
        removeAbandoned="true"
        removeAbandonedTimeout="50"
        driverClassName="net.sourceforge.jtds.jdbc.Driver"
        auth="Container"
        type="javax.sql.DataSource" />

2、日志文件部份内容
2008-7-11 9:41:18 com.caucho.hessian.server.HessianSkeleton invoke
警告: java.lang.Exception: Cannot get a connection, pool exhausted
java.lang.Exception: Cannot get a connection, pool exhausted
        at com.justep.service.BizServiceImp.execute(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:157)
        at com.justep.hessian.HessianServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:831)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:652)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1203)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
        at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
        at com.justep.connection.WLConnectionProvider.get(Unknown Source)
        at com.justep.connection.ConnectionManager.get(Unknown Source)
        at com.justep.service.action.base.SQLAction.doExec(Unknown Source)
        at com.justep.service.action.base.SupportAction.execute(Unknown Source)
        at com.justep.service.action.base.SupportAction.execute(Unknown Source)
        ... 19 more
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
        at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:756)
        at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:74)
        at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
        ... 25 more

3、在线连接数无取查证(使用的是Tomcat服务,jconsole无法连接成功)
4、执行http://ip:port/x3/bizserver。 ... 显示http错误”
  因持续时间短,最终用户反馈给我时,系统基本已经正常了,故无从取证
回复

使用道具 举报

发表于 2008-7-11 10:56:11 | 显示全部楼层
Cannot get a connection, pool exhausted
数据源被用光了,立即事务导致的
可能是立即事务启动的太多,占用了tomcat全部的数据源连接。
回复 支持 反对

使用道具 举报

发表于 2008-7-11 10:57:29 | 显示全部楼层
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
应该是超时了,tomcat在连接释放之前不会再响应请求了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-11 11:15:15 | 显示全部楼层
MaxActive="2000"
还不够用吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-11 11:16:39 | 显示全部楼层
大概同时在线人数150以下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-11 13:13:45 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-7-11 13:47:52 | 显示全部楼层
找个tomcat的监控工具看看,如:probe
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-11 14:53:35 | 显示全部楼层
对我们来说,有一定难度,公司没有熟悉Tomcat的人才。
是否是因为平台使用了过多的、辅助性的连接导致?

按我们现在的规模,不可能超过2000?
回复 支持 反对

使用道具 举报

发表于 2008-7-11 14:55:55 | 显示全部楼层
楼主,从错误看确实是连接数的问题。
另外说明一下,你同时在线的人数150并不代表就是150个连接。你启动的即时事务多的话,每个sql执行都会占用一个连接的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-11 15:20:51 | 显示全部楼层
几乎每个朋到10、20、30号这2、3天左右都会出现这类情况
因为在这个时间段我们有一个旬报表,是在这个时候编制的(每单据数据大概2000条记录)
需要说明的是,这个功能没有用立即事务!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 07:50 , Processed in 0.041693 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表