先可以看下这个链接
http://topic.csdn.net/u/20101216/10/edef446f-b721-4e6d-91bb-25231ee02de1.html
<Resource name="jdbc/DBpool"   
  auth="Container"
  type="javax.sql.DataSource"  
  username="root"                
  password="root"                
  maxIdle="50"                    
  maxActive="500"                
  maxWait="5000"                
  driverClassName="com.mysql.jdbc.Driver" 
  removeAbandoned="true"    //这里已经写了 为什么空闲的连接不会自己断开
  removeAbandonedTimeout="20"
  url="jdbc:mysql://localhost:3306/oasystem?useUnicode=true&amp;characterEncoding=UTF-8"/>配置位置在 Tomcat 6.0\conf\context.xml
驱动包也放到 Tomcat 6.0\lib 下public class DBpool { static Context initCtx ;
static Context envCtx;

private static Connection conn;
private static Statement state;
private static PreparedStatement pstate;
private static ResultSet rs;

public static Connection getConnection()throws SQLException,NamingException
{
try{
initCtx =new javax.naming.InitialContext();
 envCtx= (Context)initCtx.lookup("java:comp/env");
DataSource ds=(DataSource)envCtx.lookup("jdbc/DBpool"); //數據源名
conn=ds.getConnection();

}
catch(Exception e)
{
e.printStackTrace();
}

return conn;
}
}
我用STRUTS2写的程序 用构造函数舒适conn
数据库是MYSQL5.1  , TOMCAT6.0的望高手帮忙 真不知道那出问题了

解决方案 »

  1.   

    用完的connection還是要close。
    連接池的正在連線數,一般不需要特別在意,除非有效能問題要校調。
      

  2.   

    可以看下上之前发的一个贴子  里面我随便取了一段代码
    所有调用的 connection 我的都CLOSE了
    进程多了应该会回收的
    我设置的是 20 ms
    removeAbandonedTimeout="20"
    但他达到数据库MYSQL的连接限额时就报异常了
    现在我吧 MYSQL的最大连接数调高了 但这样不是解决问题的办法~~~
    之前都没遇见这总情况