PostgreSQL JDBCは、接続プーリング用にいくつかのクラスを提供しています。使用するには、PGConnectionPoolDataSource
をお勧めします。このクラスでは、受信した接続がビジーの場合、ライブラリは別の接続を作成します。Postgresql jdbcプール接続の量を制限する方法は?
PGPoolingDataSource
(電話がsetMaxConnections
)は、いくつかの接続がフリーになるまで待っています(すべてがビジー状態の場合)。しかし、このクラスは@Deprecatedとマークされています。
ソースコードではPGPooledConnection
を使用していますが、そのうちの1つはBaseDataSource
を使用しており、制限はありません。
プール接続を制限する正しい方法はありますか?
これは悲しいことです。いつかプーリングがJDBCの一部になることを願っています! – Dmitry
@Dmitry JDBCはAPIと仕様であり、決してプールを提供することはありません。JDBCの 'DataSource'を提供するサードパーティのライブラリを使用する必要がある理由は簡単です:接続プールを正しく行うことは難しいです。多くのJDBCドライバでは、最初に独自の接続プール実装が行われていましたが、ほとんどの場合、バグがあったり正常に実行されたりしませんでした。市場はより良い選択肢を生み出しました。 –