连接池问题,急.急.急!!!!!!(解决马上结贴)

时间:2022-01-15 19:05:15
我是用tomcat516+ jdk1.4+mysql

程序刚开始时能运行,可运行一会就抛出异常:

exception 

javax.servlet.ServletException: Cannot get a connection, pool exhausted
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.down.chkpws_jsp._jspService(chkpws_jsp.java:319)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


root cause 

org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103)
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
org.apache.commons.dbcp.DataSourceConnectionFactory.createConnection(DataSourceConnectionFactory.java:42)
org.apache.jsp.down.chkpws_jsp._jspService(chkpws_jsp.java:240)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


无论我连接池调到多大也没用。我是用org.apache.commons.dbcp连的,请高手帮忙,晕迷中...

11 个解决方案

#1


pool exhausted----连接池耗尽

可能是资源使用后没有关闭或者释放导致的吧~~~
能close的就在使用后close了~~~

#2


没条语句后面都有关闭资源
finally
{
  if (rs != null)
  {
     try
     {
        rs.close();
      }catch (...)
      {}
   }
   ......

#3


不仅rs.close,连接connection也要关闭

#4


......代表了stmt和conn, 和rs关闭方式是一样的饿!!!!!!

#5


关闭rs,ps,cnn,jboss-service.xml文件中的maxProcessors小于连接池配置文件的连接池数

#6


stmt.close();
  rs.close();
  ObjDBConnBean.freeConnection("goa",Conn);

#7


关闭rs,ps,conn,在jboss-service.xml中的maxProcessors数小于连接池数

#8


up

#9


我用的是tomcat

谁能告诉我问题出在哪里?我把连接池数调到500都不行

#10


版本的搭配要注意下,TOMCAT 5.5应该和JDK1.5搭配。另外用winxp sp2+SQLServer的朋友要注意SQLServer没有打升级补丁的话是连接不了的。

#11


不知道你的关闭连接的语句是写在哪里的
如果是写在servlet的destroy()里面就很容易出现这种问题

#1


pool exhausted----连接池耗尽

可能是资源使用后没有关闭或者释放导致的吧~~~
能close的就在使用后close了~~~

#2


没条语句后面都有关闭资源
finally
{
  if (rs != null)
  {
     try
     {
        rs.close();
      }catch (...)
      {}
   }
   ......

#3


不仅rs.close,连接connection也要关闭

#4


......代表了stmt和conn, 和rs关闭方式是一样的饿!!!!!!

#5


关闭rs,ps,cnn,jboss-service.xml文件中的maxProcessors小于连接池配置文件的连接池数

#6


stmt.close();
  rs.close();
  ObjDBConnBean.freeConnection("goa",Conn);

#7


关闭rs,ps,conn,在jboss-service.xml中的maxProcessors数小于连接池数

#8


up

#9


我用的是tomcat

谁能告诉我问题出在哪里?我把连接池数调到500都不行

#10


版本的搭配要注意下,TOMCAT 5.5应该和JDK1.5搭配。另外用winxp sp2+SQLServer的朋友要注意SQLServer没有打升级补丁的话是连接不了的。

#11


不知道你的关闭连接的语句是写在哪里的
如果是写在servlet的destroy()里面就很容易出现这种问题