Oracle переходит в универсальный пул соединений (UCP) для поддержки объединенных соединений, которые могут быть заимствованы, возвращены или закрыты. У моего веб-приложения есть это с собственным слоем данных. Это приложение будет мигрировать для использования JPA с Hibernate. На этом этапе я могу настроить Hibernate только для использования драйвера JDBC Oracle.Как настроить спящий режим с помощью UCP
Как настроить Hibernate для использования UCP?
Существует документация о том, как использовать c3p0, но это не работает для UCP.
Это моя конфигурация Hibenate с подключением 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);
Итак, вы собираетесь перейти на чистое решение JPA? Источником данных будет JTA? –
Это правильно: решение JPA с Hibernate в качестве поставщика JPA. –
Ну, я не думаю, что есть ответ, который просто работает. Лучше всего было бы реализовать пользовательский ConnectionProvider с кодом, который у вас выше. Но действительно ли нужно использовать UCP? Стандартный пул соединений будет достаточным для большинства случаев использования. –