如何使Oracle UCP始终存储多个可用连接

时间:2012-11-05 18:55:07

标签: java oracle jdbc ucp

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

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

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

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

注意: 我正在使用Oracle 11.2.0.3和最新的ucp.jar(对于Oracle 11.2.0.3)

1 个答案:

答案 0 :(得分:0)

没有这样的解决方案。从连接池请求连接时,将从池中检出连接,或者创建新连接。执行请求的线程会产生此成本。如果您总是希望在池中维护2个以上的连接而不是使用,则只需移动问题:当检出连接并available < 2时,将添加连接。在请求连接的线程上再次产生的成本(理论上是的,可以将其卸载到单独的线程/执行器,但这会使池复杂化。)

连接池旨在通过保持连接可用于重用并因此“分摊成本”来降低创建连接的成本,但并不是要完全取消成本。