O último driver jdbc do Oracle (11.2.0.1.0) explícito afirma que o cache de conexão implícita do Oracle (que é aquele que usa OracleDataSource) está obsoleto:
Drivers JDBC Oracle versão 11.2.0.1.0 de produção Readme.txt
O que há de novo nesta versão?
Universal Connection PoolNesta versão, o recurso Oracle Implicit Connection Cache foi preterido. Os usuários são fortemente encorajados a usar o novo UniversalConnection Pool. O UCP tem todas as características do ICC e muito mais. O UCP está disponível em um arquivo jar separado, ucp.jar.
Então acho melhor começar a usar UCP, mas a documentação não é tão boa assim. Por exemplo, não encontrei uma maneira de usar UCP com spring...
ATUALIZAÇÃO: Encontrei a configuração correta da mola:OK, acho que encontrei a configuração correta:
<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>
A chave é especificar a classe de fábrica certa e o método de fábrica certo