コネクションプール

注意!! このページで作成しているのは、poolman と言う名前を付けてしまったのですが、世間にはすでにPoolMan と呼ばれるソフトウェアが存在しました。申し訳ありませんが、そちらが目的の方はここをご参照ください。まぎらわしい名前を付けて申し訳ありません!!

売り物のアプリケーションサーバなどを使えるときには、コネクションプールが付いてくる事が多い。しかし、tomcatなどを使う時には、JDBCのgetConnection()に大きなコストがかかることもある。
良いプログラマとしては、自前のエディタ、メモリ管理ルーチン、コネクションプール、スレッドプールあたりは持っていなければならない。と言う事で、JDK1.3のプロクシオブジェクトの使い方の練習も兼ねて、コネクションプールを実装してみた。

現在のバージョンでは、コネクションは増える一方だし、一度エラーの出たコネクションを削除する機能もないが、JUnitでテストを行う場合などにこのコネクションプールを使用すると劇的にパフォーマンスを改善することができる。

バイナリをダウンロードしたら、以下の二つの使い方ができます。
  1. JDBCドライバとして使う
    1. Class.forName("net.wizard_limit.poolman.ConnectionPoolDriver");
      でドライバを登録する。
    2. URLに、"jdbc:poolman:元のURL"、ユーザ名とパスワードは元のものを指定して DriverManager.getConnection(String url, String user, String passwd)を呼び出す。
      DriverManager.getConnection(String url, Properties info)バージョンも利用可。
  2. DriverManagerの変わりに使う
※ Properties info の部分は、そのまま元のドライバに渡されますが、以下のキーでコネクションプールの挙動を変えることができます。
プロパティ意味デフォルト値/必須
poolman:debugLevelデバッグレベル(0〜2)0
poolman:debugLogデバッグログファイル名標準出力
poolman:errorLogエラーログファイル名標準エラー出力
poolman:driver実際に接続するJDBCドライバクラス名なし
poolman:closeCheckIntervalSec解放された回線のチェック間隔(秒)60

false@wizard-limit.net