0
Oracle UCP에 대해 다음과 같은 스프링 빈 구성이 있습니다. 어떤 이유로 DB가 바운스되면 풀은 자동으로 웹 서버를 다시 시작하지 않고 연결을 다시 설정해야합니다. 아래의 빈 설정이 작동하지 않는 것처럼 보입니다. 연결 풀의 연결이 새 연결로 유효성 검사되지 않습니다. 어떤 사람은 빈 설정을 검토하고 제안/옵션을 제공하여 다시 연결 할 수 있습니까? 위의 설정으로 Oracle UCP 재 연결 옵션
<bean id="jpaDataSource" class="oracle.ucp.jdbc.PoolDataSourceFactory"
factory-method="getPoolDataSource">
<property name="URL" value="${app.jdbc.url}" />
<property name="user" value="${app.jdbc.username}" />
<property name="password" ref="password"/>
<property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleDataSource" />
<property name="connectionPoolName" value="SVC_POOL" />
<property name="minPoolSize" value="1" />
<property name="maxPoolSize" value="5" />
<property name="initialPoolSize" value="1" />
<property name="validateConnectionOnBorrow" value="true"/>
<property name="inactiveConnectionTimeout" value="120"/>
</bean>
, 나는 DB 다시 시작한 후 다음과 같은 예외를 얻을 :
이
Caused by: org.hibernate.TransactionException: JDBC rollback failed
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:200)
at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:107)
... 61 more
Caused by: java.sql.SQLRecoverableException: Closed Connection
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3921)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at oracle.ucp.jdbc.proxy.JDBCConnectionProxyFactory.invoke(JDBCConnectionProxyFactory.java:274)
at com.sun.proxy.$Proxy24.rollback(Unknown Source)
at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:213)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:192)
편집 :
나는 새 상자에 동일한 구성을 시도, 그것은 완벽했다. 내 컴퓨터 중 하나에서이 예외에 대해 확신하지 못함 (maven tomcat을 사용하여 작업을 실행하는 목표 실행).
를 설정하려고 않은 경우 내부 ping이 확인 않는다고하지만 끈). 기본적으로 'validateConnectionOnBorrow'속성은 해당 쿼리를 내부적으로 처리합니다. 의견을 보내 주셔서 감사합니다. – Raghu