sql >> Base de Datos >  >> RDS >> Oracle

OracleDataSource frente a Oracle UCP PoolDataSource

El último controlador jdbc de Oracle (11.2.0.1.0) indica explícitamente que la memoria caché de Oracle Implicit Connection (que es la que usa OracleDataSource) está en desuso:

Versión de controladores Oracle JDBC 11.2.0.1.0 Léame.txt de producción

¿Qué hay de nuevo en esta versión?

Conjunto de conexiones universales En esta versión, la función Caché de conexiones implícitas de Oracle está en desuso. Se recomienda encarecidamente a los usuarios que utilicen el nuevo UniversalConnection Pool en su lugar. El UCP tiene todas las características del ICC, y mucho más. El UCP está disponible en un archivo jar separado, ucp.jar.

Entonces, creo que es mejor comenzar a usar UCP, pero la documentación no es tan buena. Por ejemplo, no encontré una manera de usar UCP con Spring...

ACTUALIZACIÓN: Encontré la configuración de resorte correcta:OK, creo que encontré la configuración correcta:

<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>

La clave es especificar la clase de fábrica correcta y el método de fábrica correcto