我在研究一些JDBC Oracle连接池项目,发现了一个新的(er)Oracle池实现,称为通用连接池(UCP)。现在,这使用一个新类PoolDataSource,用于连接池,而不是OracleDataSource [启用缓存选项]。我正在辩论是否切换到这个新的实现,但没有找到任何好的文档的(如果有)修复/升级,这会买我。任何人都有两个经验?增加/减少?谢谢。
最新的Oracle jdbc驱动程序(11.2.0.1.0)显式声明Oracle Implicit Connection缓存(这是使用OracleDataSource的缓存),它已被弃用:
原文链接:https://www.f2er.com/oracle/207554.htmlOracle 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,但文档它不是那么好。
例如,我没有foud一个方法使用UCP与Spring…
更新:我找到了正确的弹簧配置:
OK我想我找到了正确的配置:
<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>
关键是指定正确的工厂类和正确的工厂方法