用了数据库连接之后, 老是过1,2天就提示
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
等问题,  说是数据库连接池已经满了,这个怎么办啊
 但是我连接sql的时候 都用finnaly  close了呀  这是怎么回事,我在连接数据库的时候这么做的 写一个DataHelp类 然后再构造方法里获取数据库连接操作数据库的类继承DataHelp  每个方法完了后都会调用DataHelp的close方法,这样有问题么

解决方案 »

  1.   

    目前是使用jdbc来连接数据库, tomcat+mysql,按理说我及时的去close连接后,连接应用会回到连接池中的,但是我就想知道问什么 close之后 连接并没有回到连接池,而是占着不走
      

  2.   

    每个连接关闭之后,设置成null,试试看
      

  3.   

    这种问题一般是自己应起的。多从代码中找找原因。你刚刚说都用finally去关了,但如果你的finally前的代码没有放到try{中,是可能有问题的。
      

  4.   

    我觉得也有可能是JDBC驱动的问题。
    考虑用一些开源的连接池吧,不要自己写connection了。
      

  5.   

    你出现连接池溢出,肯定是你的close语句没有执行,应该是代码逻辑出现了某种问题。你将数据库连接池的最大允许连接数,设置小一点,自己访问产生jdbc连接的连接,在你产生连接和close语句前后加上打印语句,看代码执行了没有。还有对close语句添加异常处理。
      

  6.   

    恩。是不是通过mysql也可以设置一下
      

  7.   


    if(con!=null&!con.isClosed())
    {
     con.close();
    con=null;
    }
    一开始就这么用的
      

  8.   

    我也觉得是你写的close没有执行,写个测试程序,dubug看看