2、接続プールの実現

3185 ワード

次に、接続プール・クラスと接続プール管理クラスの主なプロパティと実装する基本インタフェースを示します.public class DBConnectionPool implements TimerListener{ private int checkedOut;//
private ArrayList freeConnections=new ArrayList();
// , , //
private int minConn;//
private int maxConn;//
private String name;// ,
private String password;//
private String url;//
private String user;//
public Timer timer;//
public DBConnectionPool(String name,String URL,String user,
String password,int maxConn)//
public synchronized void freeConnection(Connection con)
// ,
public synchronized Connection getConnection(long timeout)
// ,timeout
public synchronized void release()
// ,
private Connection newConnection()
//
public synchronized void TimerEvent()
//
}
public class DBConnectionManager {
static private DBConnectionManager instance;
//
static private int clients;//
private ArrayList drivers=new ArrayList();
// ,
private HashMap pools = new HashMap();
// name/value
static synchronized public DBConnectionManager getInstance()
/** instance , ; , ,
*/
private DBConnectionManager()
// , init()
public void freeConnection(String name,Connection con)
// ,name
public Connection getConnection(String name)
// name
public Connection getConnection(String name,long time)
// name ,time
public synchronized void release()//
private void createPools(Properties props)
// ,
private void init()// ,
private void loadDrivers(Properties props)//
}

3、 プール
で した プールは、プログラム にどのようにシステムに されますか? に、サーブレットを に、 プールの について します.
サーブレットのライフサイクルは、servletの を すると、その (init)メソッドが び されます.その 、 ユーザ は、 に されたインスタンスのサービスメソッドを び すスレッドをもたらす. に、サーバがservletをアンインストールすることを すると、まずservletのdestroyメソッドが び されます.
servletの に づいて、 で プール クラスの のインスタンス(1つ の プールの を む)を できます. のようになります.public void init() throws ServletException
{
connMgr=DBConnectionManager.getInstance();
}

サービスメソッドでは、 プール を して プールを してデータベース を できます. にdestroyメソッドで、 のようなシステムリソースを します.public void destroy(){
connMgr.release();
super.destroy();
}

わりの
データベースに するアプリケーション にJDBCを する 、データベース の は です. くの 、 の によるシステム のオーバーヘッドが きすぎて、 レベルの を するボトルネックとなっている. くのユーザがアクセスするWebアプリケーションでは、データベース を したシステムは、 の の を したシステムよりも と に れている.JDBCを してデータベースにアクセスする について しました. プール に づくデータベース の な を し, モデルを えた. は プール プログラムの モデルを し,システム の を させるために,その で くの な を うことができる.