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

最佳答案

最新的Oracle jdbc驱动程序(11.2.0.1.0)明确指出已弃用Oracle Implicit Connection缓存(即使用OracleDataSource的缓存):



因此,我认为开始使用UCP更好,但是文档并不是那么好。
例如,我没有找到在Spring中使用UCP的方法。

更新:我找到了正确的 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>

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

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

10-09 13:13