我正在研究一些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/