`
fengzi_015
  • 浏览: 72068 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Cannot get a connection, pool exhausted

    博客分类:
  • JAVA
阅读更多
    C/S系统,服务器端用apache tomcat提供服务,thin连接Oracle,客户端最大连接一般100个左右,并发数一般不会超过10个。服务启动一段时间后,会报“Cannot get a connection, pool exhausted”,重启tomcat后正常。从春节开始至今,共发生了2次这种情况,下面是部分系统日志。
2009-02-18 16:15:48 setProcSql:call kingstar.p70502011(?,?,?,?,?,?,?,?,?,?,?)
setProcInParameter(1,12,2)
setProcInParameter(2,335,2)
setProcInParameter(3,11,2)
setProcInParameter(4,-1,1)
setProcInParameter(5,1,1)
setProcInParameter(6,5,2)
setProcInParameter(7,000400008888	
000400011986     	
000400012039	
000400012073		
000400012127		
000400012158	
000400012191	
000400012202,1)
setProcInParameter(8,20090218,1)
setProcInParameter(9,342,2)
setProcOutParameter(10,2)
setProcOutParameter(11,1)

2009-02-18 16:15:53 failed to get connection
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
	at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at com.kingstar.data.DbClass.openprvConnect(DbClass.java:109)
	at com.kingstar.data.DbClass.resultIntoArray(DbClass.java:696)
	at com.kingstar.data.DbClass.execQuery(DbClass.java:301)
	at com.kingstar.data.DbClass.execQuery(DbClass.java:289)
	at com.kingstar.service.SecuritiesCrmManage.CrmCommFunc.SCRMgetShowList(CrmCommFunc.java:25)
	at com.kingstar.service.SecuritiesCrmManage.ServiceSecuritiesCrmManage.SCRMgetShowList(ServiceSecuritiesCrmManage.java:26)
	at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at com.kingstar.html.EncodingFilter.doFilter(EncodingFilter.java:45)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
	at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:756)
	at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
	... 49 more


    tomcat的连接配置如下:
  </parameter>
  <parameter>
    <name>maxActive</name>
    <value>30</value>
  </parameter>
  <parameter>
    <name>maxIdle</name>
    <value>30</value>
  </parameter>
  <parameter>
    <name>maxWait</name>
    <value>600</value>
  </parameter>
</ResourceParams>
</Context>

    怀疑有程序一直占着数据库连接不释放,但其它的地方没发现这个问题,不知道是不是服务器太烂的原因。PS:服务器是一2G内存的台式电脑。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics