BoneCP(または他のプール)は、接続がプールに戻ったときに接続の文を閉じますか?私が理解しているように、実際の接続のcloseメソッドを呼び出さないので、自動的な文を閉じることはありません。それで、他の方法で文を閉じるか、手動で閉じる必要がありますか?BoneCP(または他のプール)は、接続がプールに戻ったときに接続の文を閉じますか?
答えて
通常の接続で何が起こるべきかについては、JDBC仕様は非常に不明です。使用するプールに関係なく、は常にである必要があります。将来別のプールに切り替えることを選択した場合、アプリケーションに何が起こるかを考えてください。これは、あなたが期待していることをしないものです。
BoneCPに関して、答えはいいえです。忘れてしまった場合に接続を切断するように設定することはできますが、文を閉じることはありません。これはパフォーマンス上の理由からです。一部のJDBCドライバは、接続を閉じると内部的にアクティブなステートメントを閉じます。
しかし、BoneCPは、キャッシュが有効になっている文がある場合は、キャッシュされたすべての文を閉じます。
EDIT:v0.8.0以降、閉鎖されていない文を閉じるためのサポートが追加されました(+必要に応じて文が開かれた場所のスタックトレースを出力します)。
BoneCP(0.8.0 -RC3)、
が非キャッシュされた文のみ
に関係なく、あなたが設定どのようにオフ非閉じていないため、いくつかの設定をオフに閉じる2つの可能な結果は、ありますstatement.close()を明示的に呼び出す場合でも、キャッシュされた文のために使用します。
preparedStatement & callableStatementをキャッシュするStatementCacheクラスがあります。デフォルトは無効です。有効にするには、> 0パラメータでBoneCPConfig.setStatementsCacheSize()を呼び出す必要があります。
1 BoneCP.Statement.Close()は、キャッシュされている場合、基本となるステートメントの終了をバイパスします。
public void close() throws SQLException {
this.connectionHandle.untrackStatement(this);
this.logicallyClosed.set(true);
if (this.logStatementsEnabled){
this.logParams.clear();
this.batchSQL = new StringBuilder();
}
if (this.cache == null || !this.inCache){ // no cache = throw it away right now
this.internalStatement.close();
}
}
2 BoneCP.Connection.close() 単に関数を使用してキャッシュをクリアします "clearStatementCaches()"
良いニュースは、コネクタ/ Jは、MySQL JDBCドライバで、すべて終了します関数 "closeAllOpenStatements()"を使用して接続を閉じるときに開かれたステートメント。
- 1. Javaデータベース接続プール(BoneCPとDBPool vs c3p0)
- 2. 接続が接続プールで消えた
- 3. 接続プールが
- 4. c3p0プールされた接続ファントム接続
- 5. JDBC:接続を共有または接続プールを使用
- 6. Glassfish Derby接続プール、接続がプールに返されない
- 7. Hibernate:セッションファクトリを閉じてもc3p0接続プールが閉じない
- 8. Tomcat接続プールの概念とc3p0接続プール?
- 9. BoneCPの使用:プールからの接続の処理
- 10. OrientDB接続プール
- 11. cx_Oracle接続プール
- 12. EventHub接続プール
- 13. 接続プールJava
- 14. TCP接続プール
- 15. JDBC接続プール
- 16. mongodb接続プール
- 17. リポジトリ接続プール
- 18. ループバッククラウドコネクタ接続プール
- 19. データベース接続プール
- 20. JDBC接続プール
- 21. tomcat接続プール
- 22. Hbase接続プール
- 23. SqlServerに接続するときに「UserActionEventの接続プールがありません」
- 24. Javaの接続プール
- 25. RestSharpの接続プール
- 26. は、私は、データベースへの接続時に接続プールを使用する必要があるアプリケーションを持って動的にMySQLの接続/ J接続プール
- 27. コンシューマがDB接続プールに接続を戻していません
- 28. 接続プール内の接続の解放。
- 29. smtpサーバとの接続プール
- 30. ノードexpress-myconnection mysqlプール:サーバによって閉じられた接続