Oracle
 sql >> Base de données >  >> RDS >> Oracle

OracleDataSource contre Oracle UCP PoolDataSource

Le dernier pilote Oracle jdbc (11.2.0.1.0) déclare explicitement que le cache Oracle Implicit Connection (qui est celui qui utilise OracleDataSource) est obsolète :

Lisez-moi.txt de production des pilotes Oracle JDBC version 11.2.0.1.0

Quoi de neuf dans cette version ?

Pool de connexions universelles Dans cette version, la fonction Oracle Implicit Connection Cache est obsolète. Les utilisateurs sont fortement encouragés à utiliser le nouveau pool UniversalConnection à la place. L'UCP possède toutes les fonctionnalités de l'ICC, et bien plus encore. L'UCP est disponible dans un fichier jar séparé, ucp.jar.

Je pense donc qu'il vaut mieux commencer à utiliser UCP, mais la documentation n'est pas si bonne. Par exemple, je n'ai pas trouvé de moyen d'utiliser UCP avec spring...

MISE À JOUR : J'ai trouvé la bonne configuration de ressort :OK, je pense avoir trouvé la bonne configuration :

<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 clé est de spécifier la bonne classe de fabrique et la bonne méthode de fabrique