sql >> Databasteknik >  >> RDS >> Oracle

OracleDataSource vs. Oracle UCP PoolDataSource

Den senaste Oracle jdbc-drivrutinen (11.2.0.1.0) anger uttryckligen att Oracle Implicit Connection-cache (som är den som använder OracleDataSource) är utfasad :

Oracle JDBC Drivers release 11.2.0.1.0 produktion Readme.txt

Vad är nytt i den här versionen?

Universal Connection PoolI den här versionen är Oracles implicita anslutningscache-funktion föråldrad. Användare uppmuntras starkt att använda den nya UniversalConnection Pool istället. UCP har alla funktioner i ICC, plus mycket mer. UCP:n är tillgänglig i en separat jar-fil, ucp.jar.

Så jag tror att det är bättre att börja använda UCP, men dokumentationen är inte så bra. Jag hittade till exempel inget sätt att använda UCP med fjäder...

UPPDATERING: Jag har hittat rätt fjäderkonfiguration:OK, jag tror att jag har hittat rätt konfiguration:

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

Nyckeln är att ange rätt fabriksklass och rätt fabriksmetod



  1. SQL OUTPUT lagrade procedurer fungerar inte med ExecuteReader

  2. Ta bort dubbletter av rader från en liten tabell

  3. Skillnaden mellan sys.columns, sys.system_columns och sys.all_columns i SQL Server

  4. FIX:MySQL – VÄLJ kommando nekad till användare