L'ultimo driver Oracle jdbc (11.2.0.1.0) esplicito afferma che la cache di Oracle Implicit Connection (che è quella che utilizza OracleDataSource) è deprecata:
Produzione dei driver Oracle JDBC versione 11.2.0.1.0 Readme.txt
Cosa c'è di nuovo in questa versione?
Universal Connection PoolIn questa versione la funzionalità Oracle Implicit Connection Cache è obsoleta. Gli utenti sono caldamente incoraggiati a utilizzare invece il nuovo UniversalConnection Pool. L'UCP ha tutte le caratteristiche dell'ICC e molto altro ancora. L'UCP è disponibile in un file jar separato, ucp.jar.
Quindi penso che sia meglio iniziare a usare UCP, ma la documentazione non è così buona. Ad esempio non ho trovato un modo per usare UCP con spring...
AGGIORNAMENTO: Ho trovato la corretta configurazione della molla:OK penso di aver trovato la giusta configurazione:
<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 chiave è specificare la classe factory corretta e il metodo factory corretto