2014-09-17 1 views
0

연결 캐시 풀이 생성되었으며 때때로 "유효하지 않은 연결 개체가 잘못되었습니다."오류가 발생합니다. 페이지를 새로 고치고 제대로 작동하는 것과 동일한 작업을 수행하면 예외가 사라 졌음을 의미합니다.Oracle Datasource invalid or stale object eception - Spring

이 연결 풀에 대한 내 설정이다,

<bean id="myDataSource" class="oracle.jdbc.pool.OracleDataSource" 
     destroy-method="close"> 
     <property name="connectionCachingEnabled" value="true" /> 
     <property name="URL" value="${jdbcUrl-myapp}" /> 
     <property name="user" value="${jdbcUsername-myapp}" /> 
     <property name="password" value="${jdbcPassword-myapp}" /> 
     <property name="connectionProperties"> 
      <value> 
       oracle.jdbc.timezoneAsRegion=false 
      </value> 
     </property> 
     <property name="connectionCacheProperties"> 
      <props merge="default"> 
       <prop key="MinLimit">0</prop> 
       <prop key="MaxLimit">100</prop> 
       <prop key="InitialLimit">1</prop> 
       <prop key="ConnectionWaitTimeout">600</prop> 
       <prop key="InactivityTimeout">300</prop> 
       <prop key="ValidateConnection">true</prop> 
      </props> 
     </property> 
    </bean> 

날이 문제를 해결하는 데 도움이됩니다. 감사!!!

+1

당신이 대신'OracleConnectionPoolDataSource'를 사용하지 않나요? 또한 적절한 tx 설정이 있고 연결을 직접 열지 않았는지 확인하십시오. –

+0

OracleConnectionPoolDataSource는 새로운 API이지만 OracleDataSource를 사용하는 것과 관련된 알려진 문제점이 있습니까? 또한 적절한 tx 설정의 의미는 무엇입니까? 제발 좀 더 자세히 설명해주세요. –

+0

Ambrish : 네,하지만 그 질문에서 그가 준 대답을 이해하지 못했습니다. 나는 이미 그 질문에 exaplin에 대한 코멘트를 추가했다. 당신이 설명 할 수 있다면 나는 기쁠거야 :) –

답변

0

기본적으로 유효하지 않은 연결이 필요합니다.

시도 속성의 집합을 다음

<bean id="myDataSource" class="oracle.jdbc.pool.OracleDataSource" 
    destroy-method="close"> 
    <property name="connectionCachingEnabled" value="true" /> 
    <property name="URL" value="${jdbcUrl-myapp}" /> 
    <property name="user" value="${jdbcUsername-myapp}" /> 
    <property name="password" value="${jdbcPassword-myapp}" /> 
    <property name="connectionProperties"> 
     <value> 
      oracle.jdbc.timezoneAsRegion=false 
     </value> 
    </property> 
    <property name="connectionCacheProperties"> 
     <props merge="default"> 
      <prop key="MinLimit">0</prop> 
      <prop key="MaxLimit">100</prop> 
      <prop key="InitialLimit">1</prop> 
      <prop key="ConnectionWaitTimeout">600</prop> 
      <prop key="InactivityTimeout">300</prop> 
      <prop key="ValidateConnection">true</prop> 
      <prop key="testOnBorrow">true</prop> 
      <prop key="testOnReturn">true</prop> 
      <prop key="testWhileIdle">true</prop> 
      <prop key="validationQuery">select 1 from dual</prop> 
      <prop key="removeAbandoned">true</prop> 
     </props> 
    </property> 
</bean>