1

Oracle 正在迁移到通用连接池 (UCP) 以维护可以借用、归还或关闭的池连接。我的 web 应用程序有它自己的数据层。此应用程序将迁移以将 JPA 与 Hibernate 一起使用。此时,我只能将 Hibernate 配置为使用 Oracle JDBC 驱动程序。

如何将 Hibernate 配置为使用 UCP?

有关于如何使用 c3p0 的文档,但这不适用于 UCP。

这是我的 Hibenate 配置,带有没有 UCP 的 JDBC 连接:

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

这些是我的 UCP 和 JDBC 连接设置,可在没有 Hibernate 的情况下直接访问:

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

您将必须实现一个与 Hibernate的ConnectionProvider接口。OracleConnectionPool

以下是此类实现的示例:https ://forum.hibernate.org/viewtopic.php?p=2452561 。

于 2013-07-25T17:07:18.597 回答