java - 如何正确销毁 Java 中的 Apache Commons DBCP 池?

标签 java memory-management connection-pooling apache-commons apache-commons-dbcp

我想使用 PoolingDataSource 作为我的连接池(API 位于:http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/PoolingDataSource.html),但是当我不再需要它时,我不知道如何处理该池。如果我想连接到新数据库并且不再需要旧池中的连接怎么办?池上没有关闭方法。

最佳答案

你不一定需要杀死这个池来创建一个新的。

您可以使用 maxIdle、timeBetweenEvictionRunsMillis 和 minEvictableIdleTimeMillis 参数(请参阅 here)管理其中的连接,以确保在合理的时间内关闭空闲连接。

或者你可以配置一个GenericObjectPool以编程方式使用这些参数,并在创建 PoolingDataSource 时使用。如果您想强制执行它,它有一个 close() 方法。

关于java - 如何正确销毁 Java 中的 Apache Commons DBCP 池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449229/

相关文章:

java - 从 CSV 文件读取时超出 GC 开销限制

python - python 中 apache/modwsgi 应用程序的内存模型?

multithreading - Delphi7中不同线程分配和释放内存

java - JDBC 连接对象的范围是什么?它与 HttpServlet 和 GWT RPC 中的连接池方法有何关系?

java - 尝试在 servlet 引擎之外使用连接池

java - 当无法通过 JNI 加载 JVM 时如何获得错误消息?

java - 随机 100 个字符数组;打印所有数组值

java - 增加 -Xmx 时为 "Could not create the Java Virtual Machine"

c++ - Windows内存管理中的备用列表是什么?

mysql - 重用数据库连接池中的连接