Java/JDBC で利用できる最適な接続プール ライブラリは何ですか?
私は 2 つの主な候補 (無料 / オープンソース) を検討しています:
- アパッチDBCP -http://commons.apache.org/dbcp/
- C3P0 -http://sourceforge.net/projects/c3p0
ブログや他のフォーラムでそれらについてたくさん読みましたが、決断に至りませんでした。
これら 2 つに関連する代替案はありますか?
ベストアンサー1
DBCP は古く、実稼働レベルではありません。しばらく前に、私たちは 2 つの社内分析を実施し、実際の状況での適合性を評価するために、2 つに対して負荷と同時実行性を生成するテスト フィクスチャを作成しました。
DBCP はテスト アプリケーションに継続的に例外を生成し、C3P0 が例外なしで処理できるパフォーマンス レベルに到達するのに苦労しました。
C3P0 は、再開時に DB の切断と透過的な再接続を堅牢に処理しましたが、DBCP は、リンクが下から削除された場合、接続を回復することはありませんでした。さらに悪いことに、DBCP は、基礎となるトランスポートが壊れたアプリケーションに Connection オブジェクトを返していました。
それ以来、私たちは 4 つの主要な高負荷の消費者向け Web アプリで C3P0 を使用してきましたが、振り返ることはありませんでした。
更新:長年棚に置かれていたが、Apache Commonsの人々がDBCP が休眠状態から脱却そして、現在では再び活発に開発されているプロジェクトです。そのため、私の最初の投稿は古くなっている可能性があります。
そうは言っても、私はまだこの新しくアップグレードされたライブラリのパフォーマンスを体験しておらず、最近のアプリ フレームワークでこれが事実上の標準となっているという話も聞いていません。