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