【发布时间】:2009-01-08 22:02:45
【问题描述】:
有谁知道刷新 JDBC 连接池的最佳(或任何)方法?我在文档中找不到任何明显的东西。连接池似乎永远不会被删除。
我目前的想法是从我们存储它们的哈希中删除所有数据源,这将触发我们的代码生成新的。但是,我的第一次尝试抛出了 ConcurrentModificationException。
【问题讨论】:
标签: jdbc connection-pooling flush
有谁知道刷新 JDBC 连接池的最佳(或任何)方法?我在文档中找不到任何明显的东西。连接池似乎永远不会被删除。
我目前的想法是从我们存储它们的哈希中删除所有数据源,这将触发我们的代码生成新的。但是,我的第一次尝试抛出了 ConcurrentModificationException。
【问题讨论】:
标签: jdbc connection-pooling flush
您不应该编写连接池。即使您想自己管理池(而不是让容器来管理),您也应该为此使用库(例如 Commons DBCP)。
如果你想从哈希中删除所有内容,你应该使用 hash.clear()。
如果要避免 ConcurrentModificationException,则需要添加同步。
如果您删除对 Connections 的引用(您确定您是指 DataSources 吗?),请务必先 close() 它们。
【讨论】:
你为什么要删除,而不是一开始就创建它。
它应该基于您的应用服务器,可能是一些 JNDI 编程可以解决问题。
【讨论】:
您不应该编写连接池。这由 Java EE 应用服务器处理。
【讨论】: