gpt4 book ai didi

OracleDataSource 与 Oracle UCP PoolDataSource

转载 作者:行者123 更新时间:2023-12-03 07:40:18 25 4
gpt4 key购买 nike

我正在研究一些 JDBC Oracle 连接池项目,并发现了一种新的 Oracle 池实现,称为通用连接池 (UCP)。现在,它使用一个新类 PoolDataSource 来进行连接池,而不是 OracleDataSource [启用了缓存选项]。我正在争论是否要切换到这个新的实现,但找不到任何好的文档来说明这会给我带来什么(如果有的话)修复/升级。有人有两者的经验吗?优点/缺点?谢谢。

最佳答案

最新的 Oracle jdbc 驱动程序 (11.2.0.1.0) 明确指出 Oracle 隐式连接缓存(即使用 OracleDataSource 的缓存)已被弃用:

Oracle JDBC Drivers release 11.2.0.1.0 production Readme.txt

What Is New In This Release ?

Universal Connection Pool In this release the Oracle Implicit Connection Cache feature is deprecated. Users are strongly encouraged to use the new Universal Connection Pool instead. The UCP has all of the features of the ICC, plus much more. The UCP is available in a separate jar file, ucp.jar.

所以我认为开始使用 UCP 更好,但是文档并不是那么好。例如,我没有找到将 UCP 与 spring 一起使用的方法...

更新:我找到了正确的 Spring 配置:好的,我想我已经找到了正确的配置:

<bean id="dataSource" class="oracle.ucp.jdbc.PoolDataSourceFactory" factory-method="getPoolDataSource">
<property name="URL" value="jdbc:oracle:thin:@myserver:1521:mysid" />
<property name="user" value="myuser" />
<property name="password" value="mypassword" />
<property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleDataSource" />
<property name="connectionPoolName" value="ANAG_POOL" />
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="initialPoolSize" value="5" />
<property name="inactiveConnectionTimeout" value="120" />
<property name="validateConnectionOnBorrow" value="true" />
<property name="maxStatements" value="10" />
</bean>

关键是指定正确的工厂类和工厂方法

关于OracleDataSource 与 Oracle UCP PoolDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1427890/

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