Hibernate を使用して、Spring Boot 1.2.7 アプリケーションで動作するように Oracle UCP を構成しようとしています。現在 c3p0 が動作していますが、Oracle RAC をサポートする必要があります。
Oracle UCP が Hibernate で直接サポートされていないことは認識していますが、Oracle のこのドキュメントでは使用できると書かれているようです。
https://blogs.oracle.com/dev2dev/entry/how_to_use_oracle_universal
また、Bean の作成方法や XML で構成する方法を示す古い例をいくつか見つけましたが、現在 XML 構成はありません。また、この時点で、Spring は application.properties ファイルと pom からこれをすべて実行できると思います。
私のpomでは、Oracleのために、私は持っています:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ucp</artifactId>
<version>12.1.0.2</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ons</artifactId>
<version>12.1.0.2</version>
</dependency>
Hibernate の場合:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.3.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>4.3.11.Final</version>
</dependency>
c3p0 依存関係を削除できることに気付きました。
私が混乱しているのは、指定するプロパティです。私はこれらが必要だと思います:
spring.datasource.driverClassName=oracle.jdbc.pool.OracleDataSource
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.properties.hibernate.connection.driver_class = oracle.jdbc.pool.OracleDataSource
spring.datasource.url=jdbc:oracle:thin:@mydb.mycomp.com:1521:abcde
spring.datasource.username=user
spring.datasource.password=pass
spring.jpa.properties.hibernate.connection.username=user
spring.jpa.properties.hibernate.connection.password=pass
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
spring.jpa.properties.hibernate.connection.provider_class = oracle.jdbc.pool.OracleDataSource
spring.datasource.maxPoolSize = 10
spring.datasource.initialPoolSize = 5
これを起動すると、次のようになります。
java.sql.SQLException: oracle.jdbc.pool.OracleDataSource cannot be cast to java.sql.Driver
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:280)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:200)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:708)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:642)
at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:464)
at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:141)
誰かが適切なプロパティを教えてくれたり、現在のドキュメントを教えてくれたりしたら、とても感謝しています。