1

オラクルは、借用、返却、またはクローズできるプールされた接続を維持するために、ユニバーサル接続プール (UCP) に移行しています。私の Web アプリケーションには、独自のデータ層を使用してこれが配置されています。このアプリケーションは、Hibernate で JPA を使用するように移行されます。この時点で、Hibernate を構成して Oracle JDBC ドライバーを使用することしかできません。

UCP を使用するように Hibernate を構成するにはどうすればよいですか?

c3p0 の使用方法に関するドキュメントがありますが、これは UCP では機能しません。

これは、UCP を使用しない JDBC 接続を使用した私の Hibenate 構成です。

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
        <property name="hibernate.connection.url">jdbc:oracle:thin:@DBSERVER:1521:DATABASE</property> 
        <property name="hibernate.connection.username">username</property> 
        <property name="hibernate.connection.password">password</property> 
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>
        ....
        <mapping resource="Country.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

これらは、Hibernate なしで直接アクセスするための UCP と JDBC の接続設定です。

PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setUser("username");
pds.setPassword("password");

pds.setConnectionFactoryProperty("driverType", "thin");
pds.setURL("jdbc:oracle:thin:@DBSERVER:1521:DATABASE");
pds.setInitialPoolSize(10);
pds.setMaxPoolSize(200);
4

1 に答える 1

3

を HibernateConnectionProviderとインターフェースするために を実装する必要があります。OracleConnectionPool

このような実装の例を次に示します: https://forum.hibernate.org/viewtopic.php?p=2452561

于 2013-07-25T17:07:18.597 に答える