2013-10-06 28 views
11

最近、私はPostgreSQLのJDBCドライバをhereからダウンロードしました。 私は、Java 1.7 JVMを使用していますし、それが書かれているので:PostgreSQL JDBCでの接続プーリング

あなたが1.6または1.7 JVMを使用している場合は、その後、あなたがJDBC4 バージョンを使用する必要があります。

JDBC4をダウンロードします。問題はそこにはPoolingDataSource'sが存在しないことです。 JDBC3を入手した場合はhereのようにorg.postgresql.jdbc3.Jdbc3PoolingDataSourceまたは を使用できます。

私が知らないJDBC4にはプールDataSourceがありますか、代わりに を使用する必要がありますか?私はJDBC4で見つかった唯一のものは、PGPoolingDataSourceであるが、そのJavaのドキュメントメッセージに基づいているので、私はこれを使用するようになってるかどうかはわから ないよ:サーバ/ミドルウェアベンダーが提供している場合

これを使用しないでください。 PostgreSQLのConnectionPoolDataSource実装とインタフェースする接続プーリングの実装!ここでorg.postgresql.ds.PGPoolingDataSource

答えて

15

使用例を示します。http://jdbc.postgresql.org/documentation/head/ds-ds.html
私はJDBC4ドライバを使用してこの例をチェックしましたし、それがうまく働きました。ここで提供

プーリングデータソース実装は、世界で最も機能豊富なではありません。それには限界がありますのため

は、しかし、このリンクから文書では、それらは、データ・ソースをプールPostgreSQLの使用を思いとどまら。とりわけ、プール自体が閉じられるまで接続が閉じられることはありません。プールを縮小する方法はありません。また、既定の構成済みユーザー以外のユーザーに要求された接続はプールされません。そのエラー処理では、プールから切断された接続を削除できないことがあります。一般に、PostgreSQLで提供される接続プールを使用することは推奨されません。アプリケーションサーバーをチェックするか、優れたジャカルタコモンズDBCPプロジェクトをチェックしてください。

彼らはDBCP接続プールを使用することをお勧めします:http://commons.apache.org/proper/commons-dbcp/ はそれがはるかに優れている、それをチェック - ちょうどプロジェクトにclasspatchとインポートに配置し、ライブラリファイルをダウンロードし、上記のリンクからドキュメントがどのように使用する例が含まれていますそれはコードです。

ほとんどの(すべての)アプリケーションサーバーは、独自の接続プールを実装しています。アプリケーションサーバーを使用している場合は、これが最適です。
例として、Tomcat 7には接続プールの独自の実装があり、DBCPよりも優れています。http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

関連する問題