你的DBManager有没有做过连接回收的清理工作?
还有,把你的连接池的java代码贴出来。
还有,把你的连接池的java代码贴出来。
解决方案 »
- 怎么计算一条数据中值不为空的个数
- SQL 数据类型问题
- 请问如何将exec(@sql)的执行的结果写入表中(临时表也可以)
- mssql安装中出现这怎么解决
- SQL 里面的单引号和双引号怎么用的 请大家帮我看看这句SQL语句字符串
- 深入理解数据库的原理机制?
- 大家来看看,关于 CROSS JOIN 优化的问题!
- 请问我的access数据库,怎么老是提示我无法为更新行集定位,一些值可能已在最后读取后改变,这应该和SQL SERVER类似原理的,我以前也在SQ
- sql server writer
- 请高手帮忙:请选出每门课程最接近平均分的学徒
- 请问重命名数据库表的代码是?
- 救命啊!PUBS数据库的问题
package mrp.util;
import java.util.Stack;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.util.Enumeration;public final class ConnectionPool { public Stack pool;
private long timeout;
private static ConnectionPool mySelf;
private Connection con; private ConnectionPool() {
} public synchronized static ConnectionPool getInstance(){ if(mySelf == null){
mySelf = new ConnectionPool();
} return mySelf;
} public synchronized void initialize(int numCons,long timeout) throws SQLException{
if(pool != null){
throw new SQLException ("Pool already initialized");
}
try{
this.timeout = timeout;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
pool = new Stack();
for(int i=0 ; i < numCons;i++){
pool.push(DriverManager.getConnection("jdbc:odbc:MyDB","sa","123456"));
}
}
catch(ClassNotFoundException ex){
throw new SQLException("Driver not found!!!");
}
}
public synchronized Connection getConnection() throws SQLException{
if(pool == null){
throw new SQLException ("Pool not initialized,不能連接到數據庫,請重新登錄");
}
/*
while(pool.empty()){
try{
wait(timeout);
}
catch(InterruptedException ex){
throw new SQLException ("Connection not available,目前無有效的數據庫連接,請待會再試");
}
}
*/
con = (Connection) pool.pop();
return con;
} public synchronized void releaseConnection(Connection con) throws SQLException {
if(pool == null){
throw new SQLException ("Pool not initialized,不能連接到數據庫,請重新登錄");
}
pool.push(con);
notifyAll();
}
public synchronized int getConnectionCount() throws Exception{
//返回當前連接池中可用的連接數
return pool.size();
}
public void destroyPool() throws SQLException {
if(pool == null){
throw new SQLException("Pool not initialized,不能連接到數據庫,請重新登錄");
}
while(!pool.empty()){
((Connection)pool.pop()).close();
pool = null;
}
}
}