3つの接続プールのオンライン評価は次のとおりです。
C3P0はリソースを消費し、効率の点で少し低くなる可能性があります。
実際にはDBCPにはバグがあり、場合によっては多くの空の接続をリリースできません。 Hibernate 3.0はそのサポートを放棄しました。
Proxoolには否定的なレビューが少なく、現在推奨されています。また、接続プールステータスの即時監視も提供して、接続の漏れを容易にします。
Proxool Connection Pool
<bean id = "proxool_datasource"> <プロパティname = "driver-class" value = "oracle.jdbc.driver.oracledriver"/> <プロパティname = "driver-url" value = "jdbc:thin:@localhost:1521/ssid" "/> <" fart = "ユーザー"/>テストのSQL実行ステートメント - > <プロパティ名= "housekeepingtestsql" value = "select current_date"/> <! - 維持されているアイドル接続の最小数(デフォルト2) - > <プロパティname = "propertycount" value = "2"/> <! - 各接続状態の時間間隔を自動的に検出します。アイドル接続が検出された場合、すぐにリサイクルされます。タイムアウトの破壊はデフォルトで30秒になります) - > <プロパティ名= "housekeepingsleeptime" value = "30"/> <! - 最大アクティビティ時間(この時間を超えるスレッドは殺されます、デフォルトは5分です) - > <プロパティ名= "MaximumActivetime" value = "300"/> <! - 最大接続時間接続(デフォルト2) - > <プロパティ名= "最小コネクションコント"値= "10"/> <! - 接続の最大数(デフォルト5) - > <プロパティname = "bulation" value = "30"/> <! - 接続の最大数 - > <プロパティ名= "
C3P0接続プール
<beanid = "dataSource" class = "com.mchange.v2.c3p0.combopooleddatasource" Destroy-method = "close"> <propertyname = "driverclass" value = "oracle.jdbc.driver.oracledriver"/> <propertyname = "jdbcurl" value = "jdbc:oracle:thin:@localhost:1521/ssid"/> <propertyname = "user" value = "user"/> <propertyname = "password" value = "password"/> <propertyname = "initialpotyname =" initiallowsizezize "value =" 10 "/> <proption =" minpoolsizizizizizize "/> <propertyName = "maxpoolsize" value = "100"/> </bean> <! - C3P0の構成プロパティ、これらのプロパティを介して、データソースでさまざまな効果的なコントロールを実行できます。 AcquireretryTuttempts:データベースから新しい接続を取得できなかった後に取得しようとする繰り返しの試みの数を定義します。デフォルトは30です。 AcquireretryDelay:2つの接続の間隔、ユニットミリ秒、デフォルトは1000です。 AutoCommitOnClose:接続が閉じられた場合、コミットされていないすべての操作はデフォルトでロールバックされます。デフォルトはfalseです。 AutomatictestTable:C3P0は、テストという名前の空のテーブルを作成し、テストに独自のクエリステートメントを使用します。このパラメーターが定義されている場合、プロパティPreferredTestQueryは無視されます。このテストテーブルでは何もできません。C3P0テストに使用され、デフォルトでnullになります。 BreakeTeracquireFailure:接続を取得できないと、すべてのスレッドが例外をスローするために接続を取得するのを待っています。ただし、データソースはまだ有効であり、GetConnection()を次に呼び出すときに接続を取得しようとします。 trueに設定されている場合、データソースは、接続を取得しようとした試みに失敗した後、切断され、永続的に閉じられていることを宣言します。デフォルトはfalseです。 CheckoutTimeOut:接続プールが使用されると、クライアントはgetConnection()を呼び出し、新しい接続を取得する時間を待ちます。タイムアウト後、sqlexceptionがスローされます。 0に設定すると、無期限に待機します。ユニットミリ秒、デフォルトは0です。 ConnectionTesterClassName:ConnectionTesterまたはQueryConnectionTesterを実装して、Connectionsをテストすると、クラス名は完全に適格な名前に設定する必要があります。デフォルトはcom.mchange.v2.c3p0.impl.defaultConnectionTesterです。 IdleConnectionTestPeriod:すべての接続プールでアイドル接続を確認するのに何秒かかりますか?デフォルトは0で、チェックされていないことを示します。 InitialPoolsize:初期化中に作成された接続の数は、MinpoolsizeとMaxpoolsizeの間で評価する必要があります。デフォルトは3です。 Maxidletime:最大アイドル時間、アイドル時間を超える接続が破棄されます。 0または負の場合、廃棄されることはありません。デフォルトは0です。 MaxPoolsize:接続プールに保持されている接続の最大数。デフォルトは15です。 MaxStatements:JDBCの標準パラメーター。データソースにロードされた準備の数を制御するために使用されます。ただし、Precacheステートメントは接続プール全体ではなく、単一の接続に属しているためです。したがって、このパラメーターを設定するには、多くの要因を考慮する必要があります。 maxStatementsとmaxstatementsperconnectionの両方が0の場合、キャッシュは閉じられます。デフォルトは0です。 maxstatementsperconnection:接続プールに単一の接続があるキャッシュステートメントの最大数。デフォルトは0です。 numhelperthreads:C3P0は非同期で操作されており、遅いJDBC操作はヘルププロセスを通じて完了します。これらの操作を拡張すると、パフォーマンスが効果的に改善され、複数の操作が複数のスレッドを介して同時に実行されます。デフォルトは3です。 PreferredTestQuery:すべての接続テストが実行されるというテストステートメントを定義します。このパラメーターは、接続テストを使用するときにテスト速度を大幅に改善できます。テストされたテーブルは、初期データソースの時点で存在する必要があります。デフォルトはnullです。 PropertyCycle:ユーザーがシステム構成パラメーターを変更する前に待機する最大秒数。デフォルトは300です。 testConnectionOnCheckout:高性能消費のために必要な場合にのみ使用してください。 Trueに設定されている場合、その有効性は各接続の提出時に検証されます。接続テストのパフォーマンスを向上させるために、IdleConnectionTestPeriodまたはAutomateStEStTableを使用することをお勧めします。デフォルトはfalseです。 testConnectionOnCheckin:TRUEに設定すると、接続の取得中に接続の有効性が確認されます。デフォルトはfalseです。 - >
DBCP接続プール
<beanid = "dbcp_datasource" class = "org.apache.commons.dbcp.basicdatasource"> <propertyname = "driverclassname" value = "oracle.jdbc.driver.oracledriver"> </property> <propertyname = "url" value = "jdbc:oracle:shin:@localhost:1521/ssid"> </property> <propertyname = "username" value "value =" user "> </property> <propertyname =" propertyname = "value =" password "> </property> <propertyname =" hisitize "value =" 3 "> </property> <propertyname = "maxactive" value = "50"> </property> <propertyname = "maxactive" value = "50"> </property> <propertyname = "maxidle" value = "20"> </propertyname = "minidle" value = "5"> </propertyname = "maxwait"> </bean属性説明イニシャルサイズ:接続の初期数コネクションプールの初期化の際のマキシクト:接続プールの最大値マキシドル:最大アイドル値ミニドル:最小アイドル値maxwait:最大接続確立待機時間 - >