接続プール
本製品 は標準JDBCコネクションプーリングを実装しています 。プーリングの有効化にはUseConnectionPooling を設定します。次のセクションでは、それらの設定および使用方法について説明します。
プールされた接続の操作
プールされていない接続との通信と同じように、標準JDBC オブジェクトを使って接続を開いたり、閉じたりすることができます。この場合、取得された Connection オブジェクトは、コネクションプールにより所有される物理的接続のハンドルです。接続が閉じられると、接続が廃棄されずにハンドルがプールに戻され、次の接続リクエストに使われます。
プールに戻されるには、明示的に接続を閉じなければなりません。
コネクションプールの設定
UseConnectionPooling に加え、次の接続プロパティを設定し、コネクションプールをコントロールします。
- PoolMaxSize:同時に開ける接続の最大数を定義します。
- PoolIdleTimeout:どの時間接続がオープンでアイドルしたままにできるかを設定します。この制限を超えた場合、接続はプールに戻されます。
- PoolWaitTime:どのくらいの時間新しい接続リクエストが、接続が有効になるまで待機すべきかの制限を設定します。この制限を超えた場合、リクエストはエラーを返します。デフォルトで接続リクエストは接続が有効になるまで無制限で待ち続けます。
PostgreSQLDataSource でのコネクションプーリング
接続をプールするためのデフォルトのメソッドを使用するには、UseConnectionPooling を使用してPostgreSQLDataSource をインスタンス化します。
PostgreSQLDataSource postgresqlDataSource = new PostgreSQLDataSource();
postgresqlDataSource.setURL("jdbc:postgresql:UseConnectionPooling=true;User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432");
JDBC コネクションプーリング
JDBC ConnectionPoolDataSource インターフェースを使用してプールされた接続を確立する場合は、UseConnectionPooling でPostgreSQLConnectionPoolDataSource をインスタンス化します。
PostgreSQLConnectionPoolDataSource postgresqlPoolDataSource = new PostgreSQLConnectionPoolDataSource();
postgresqlPoolDataSource.setURL("jdbc:postgresql:UseConnectionPooling=true;User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432");
コネクションプールを閉じる
JRE 1.3 もしくはそれ以上では、アプリケーションが止まると自動的にコネクションプールは閉じられます。DataSource オブジェクトのclose メソッドを呼び出して手動でコネクションプールを閉じることが可能です。