Jakarta Commons

色々便利なものが揃ってるJakarta Commonsプロジェクト。
今回採用を検討してるのがDBの接続プールを管理するDBCP。


基本的な機能を提供してるBasicDataSourceを取り合えず
使ってみたけど、接続プールの数が不足したら、
エラーになっちゃうので、ちょっと実務では使いづらい。
PoolableDataSource?の方には接続が溢れた場合の挙動を、

  1. 即時に例外投げる
  2. 接続が確保できるまで待機
  3. 最大接続数を越えて接続

の3パターンから選べたんで、そういう設定できないか、
BasicDataSourceのソースを追ってみる。
で、中身を見るとやっぱり内部的にPoolingObjectやらを組み合わせて
使ってたんで、そのへんをいじれば何とかなるっぽい。
後、BasicDataSource自体はFactoryパターン使ってるんですな。
普通に使うだけならDataSourceをインスタンス化するだけなんで実に簡単に使える。
よくできてますねぇ、いやほんと。