下面我们以一个名为ConnectionPool的连接池为例来看看连接池的实现。先看看ConnectionPool的基本属性: m_ConnectionPoolSize:连接池中连接数量下限 m_ConnectionPoolMax:连接池中连接数量上限 m_ConnectionUseCount:一个连接的最大使用次数 m_ConnectionTimeout:一个连接的最长空闲时间 m_MaxConnections = -1:同一时间的最大连接数 m_timer:定时器 这些属性定义了连接池与其中的每个连接的有效状态值。连接池的自我管理,实际上就是通过定时的对每个连接的状态、连接的数量进行判断而进行相应操作。其管理流程如下:
通过上图,我们可以定义出ConnectionPool要完成管理所需要的基本接口: public class ConnectionPool implements TimerListener{ public boolean initialize() //连接池初始化 public void destroy() //连接池的销毁 public synchronized java.sql.Connection getConnection() //取一个连接 public synchronized void close() //关闭一个连接 private synchronized void removeFromPool() //把一个连接从连接池中删除 private synchronized void fillPool() //维护连接池大小 public synchronized void TimerEvent() //定时器事件处理函数 }
 
2/2 首页 上一页 1 2 |