sql >> データベース >  >> RDS >> Mysql

jdbcプールで接続を強制的に再利用するにはどうすればよいですか?

    実際には接続プールを使用していません。 ConnectionPoolDataSource 直接使用するためのものではありません。これは(特別な) DataSourceとして意図されています PooledConnectionの場合 その後、(通常の) DataSourceによって接続プールに保持されるオブジェクト 接続プールを提供する実装。

    通常の開発者はConnectionPoolDataSourceを使用しないでください 直接、アプリケーションサーバーによって提供される接続プールで使用すること、または汎用の DataSourceにラップすることを目的としています。 ■接続プールを提供しました。

    接続の場合 接続プールから要求された場合、既存の PooledConnectionをチェックアウトします (または、 ConnectionPoolDataSourceから新しいものをリクエストします )、 Connectionを取得します それをユーザーに返します。ユーザーがConnectionを閉じたとき 、 PooledConnection 接続プールに再び使用可能であることを通知します。

    この場合、 PooledConnectionを作成しています 、接続を取得する そこからPooledConnectionを破棄します 。これは、 PooledConnectionが が破棄され、データベースへの物理接続は再利用できず、最終的にガベージコレクションが行われるときに閉じ/破棄されます(通常、接続プールが物理接続を閉じたい場合は、 close()> PooledConnectionで 。

    アプリケーションサーバーが提供する接続プールを使用するか、DBCP、c3p0、BoneCPなどの汎用接続プールを使用する必要があります。



    1. Python+MySQLdbの奇妙な問題

    2. 上級ユーザー向けのSQLServerでの動的データマスキング

    3. SQLAlchemy、Psycopg2、Postgresql COPY

    4. 拡張機能を再配置不可にする方法は?