gpt4 book ai didi

java - 使用 Oracle UCP 连接池管理器时如何获取连接?

转载 作者:搜寻专家 更新时间:2023-10-30 23:03:25 25 4
gpt4 key购买 nike

寻找有关使用 Oracle UCP 连接池管理器时获取连接的最佳实践的建议。我无法从文档中判断您是否应该保留对 PoolDataSource 对象的引用并从中获取连接,或者您是否应该使用您的管理器通过如下代码获取连接:

(Connection)getConnectionPool(connectionPoolName).borrowConnection(getRetrievalMap().get(connectionPoolName)).getPhysicalConnection();

所有示例似乎都使用 PoolDataSource 对象来获取它们的连接。人们是否保留这些东西,然后只使用 Manager 对 Pools 进行管理?或者他们是否使用 getPhysicalConnection() 直接从管理器获取 java.sql.Connection 对象?我有点担心使用 getPhysicalConnection(),不确定池是否知道它。例如,关闭使用 getPhysicalConnection() 获得的连接是否会回到池中?

是否有更好的方法从我未看到的管理器获取连接?

最佳答案

回答我自己的问题:

经过一些调试,看起来我们不应该在使用池时使用 getPhysicalConnection()。对其执行 close() 不会立即将其返回到池中,而来自 PoolDataSource 的连接上的 close() 确实会立即返回到池中。此外,物理连接是 TC4Connection 的一个实例,其中来自 PoolDataSource 的连接是一个具有一些池字段和对 T4CConnection 的引用的代理。

所以我想我们将保存 PoolDataSource 对象并从中获取我们的连接。我希望 Oracle 文档在管理器一章中涵盖这个主题。

关于java - 使用 Oracle UCP 连接池管理器时如何获取连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29543002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com