二、得到和返回连接
dbconnectionmanager提供getconnection()方法和freeconnection方法,这些方法有客户程序使用。所有的方法以连接池名字所参数,并调用特定的连接池对象。
public connection getconnection(string name) {
dbconnectionpool pool = (dbconnectionpool) pools.get(name);
if (pool != null) {
return pool.getconnection();
}
return null;
}
public connection getconnection(string name, long time) {
dbconnectionpool pool = (dbconnectionpool) pools.get(name);
if (pool != null) {
return pool.getconnection(time);
}
return null;
}
public void freeconnection(string name, connection con) {
dbconnectionpool pool = (dbconnectionpool) pools.get(name);
if (pool != null) {
pool.freeconnection(con);
}
}
三、关闭
最后,由一个release()方法,用来完好地关闭连接池。每个dbconnectionmanager客户必须调用getinstance()方法引用。有一个计数器跟踪客户的数量。方法release()在客户关闭时调用,技术器减1。当最后一个客户释放,dbconnectionmanager关闭所有的连接池。
list 11-14
public synchronized void release() {
// wait until called by the last client
if (--clients != 0) {
return;
}
enumeration allpools = pools.elements();
while (allpools.hasmoreelements()) {
dbconnectionpool pool = (dbconnectionpool) allpools.nextelement();
pool.release();
}
enumeration alldrivers = drivers.elements();
while (alldrivers.hasmoreelements()) {
driver driver = (driver) alldrivers.nextelement();
try {
drivermanager.deregisterdriver(driver);
log("deregistered jdbc driver " + driver.getclass().getname());
}
catch (sqlexception e) {
log(e, "can not deregister jdbc driver: " +
driver.getclass().getname());
}
}
}
当所有连接池关闭,所有jdbc驱动程序也被注销
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器