J2EEコンテナのJava appoutside)の場合、どの接続プールライブラリが最適ですか?
したがって、 BoneCP および DBPool が残ります。私が知る限り、どちらも活動が限られています。私が見ることができる主な違いは、BoneCPが勝っているように見えるパフォーマンスです。ただし、ドキュメントはかなり弱いです。
実世界でどのデータベースプールライブラリを使用しましたか。その理由は何ですか。良い点と悪い点は何でしたか?
職場では(c3p0の代わりに)BoneCPを使用しており、私が知る限り、問題はありませんでした(自分でアップグレードはしませんでした)。私が見たり読んだりしたことから、それはうまく設計された堅実なライブラリのようであり、私はそれを他の選択肢よりも個人的に使用します。
DBPoolについて否定的なことは何もありませんが、私はDBPoolに精通していません。そのサイトのドキュメントを見ると確かにプラスのようですが。
Tomcatの内外でC3P0を使用しています。ただし、監視とロギングは最高ではないため、SpringSource接続プールの使用を開始します。私が楽しみにしている最高の機能の1つは、特定の時間に実行されているSQLステートメントを正確に表示することです。
C3P0に追加する必要があることの1つは、プールがいっぱいですべての接続がビジーであるときに、特定の接続要求が接続を待機する時間を計る手段でした。
public Connection getConnection() throws SQLException
{
long t = System.currentTimeMillis();
ComboPooledDataSource ds = (ComboPooledDataSource) getDelegate();
Connection conn = null;
if (ds.getNumBusyConnections() == ds.getMaxPoolSize())
{
logger.info("Pool (" + ds.getUser() + ") full, waiting for connection");
conn = ds.getConnection();
t = System.currentTimeMillis() - t;
logger.info("Connection busy wait time (" + ds.getUser() + "): " + t + "ms");
}
else
{
conn = ds.getConnection();
}
return conn;
}
したがって、考慮しなければならないこと:
BoneCPは高速に見えますが(私はこれまで聞いたことがありません)、正直なところ、C3P0は私たちにとっても高速でした。 4、5年前にテストしたとき、DBCPはひどく遅く(修正されたようです)、Oracleのプールはかなり遅く、C3P0は非常に高速でした。私たちのテストは、BoneCPのサイトのテストと非常によく似ていました。
BoneCPの管理性については何も知りません。 #3は、本番環境で最も重要な機能であることがわかりました。
BoneCPを置き換えるHikariCPを見てください https://brettwooldridge.github.io/HikariCP/ これは私のプロジェクトで現在使用しているものです。
数年前に私たちが選択を行っていたとき、それはちょうどc3p0とdbcpの間でした。当時、c3p0は、Oracleの再起動後に接続を再構築できるものでした。 DBCPでは、アプリサーバーを再起動して再度実行する必要がありました。
また、c3p0デバッグハング接続機能は、他の方法では見つけるのが非常に難しい接続リークを追跡するのに非常に役立つことがわかりました。
私がc3p0に欠けていたのは、実行されたステートメントのログに、それらにかかった時間に関する情報を記録するのに役立ちます。
DataNucleus/JPAと一緒にc3p0を使用していたので、BoneCPに簡単に切り替えることができました。実際に私がしなければならなかったのは、SpringコンテキストファイルのDataSource構成を変更することだけです。
私が見た限りでは、BoneCPベンチマークは本当に良いです: http://www.databaseskill.com/2282333/ 、 http://jolbox.com/benchmarks.html
私は現在、大企業のイントラネット環境でBoneCPを試しています。私はc3p0(掘り下げればかなり一般的な問題)で一貫したスレッドの問題を抱えていたので、調査を行いましたが、それは最高のストックライブラリのようでした。構成は少し練習ですが、一度それを取得すると、それは素晴らしいようです。