0

我正在创建将返回java.sql.Connection给该类客户的连接管理器类。我的目标是在池中始终有 2 个可用连接,这样我就不会浪费时间来创建连接。当我返回可用连接时,我需要让 Oracle UCP 创建新的可用连接,所以它总是有 2 个可用连接。

问题是 Oracle UCP 没有控制它的选项。我已经阅读了UCP 文档,但没有找到任何解决方案。

setMinPoolSize()方法,但它控制可用+借用的连接,而不仅仅是可用的连接。

还有一个可收集的连接功能,但它收集现有(借用)连接而不是创建新连接。

注意:我使用的是 Oracle 11.2.0.3 和最新ucp.jar版本(适用于 Oracle 11.2.0.3)

4

1 回答 1

0

没有这样的解决方案。当从连接池请求连接时,要么从池中检出,要么创建一个新连接。执行请求的线程会产生此成本。如果您总是希望在池中保持比使用中的连接多 2 个,那么您只是在转移问题:当一个连接被签出时,available < 2然后将添加一个连接。请求连接的线程再次产生的成本(是的,理论上可以将其卸载到单独的线程/执行程序,但这会使池复杂化)。

连接池旨在通过保持连接可重复使用并因此“分散成本”来降低创建连接的成本,而不是完全消除成本。

于 2012-11-06T09:14:49.727 回答