我看到运行1小时后,Oracle连接池会抛出异常
“发生SQLException:在连接缓存中找到无效或过时的连接”
这是属性文件:
<bean id="datasource" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close">
<property name="URL" value="${local.url}" />
<property name="user" value="${local.username}" />
<property name="password" value="${local.password}" />
<property name="connectionProperties">
<props>
<prop key="includeSynonyms">true</prop>
</props>
</property>
<property name="connectionCachingEnabled" value="true"/>
<property name="connectionCacheProperties">
<props>
<prop key="PropertyCheckInterval">60</prop> <!-- 1 min -->
<prop key="ValidateConnection">true</prop>
<prop key="MinLimit">2</prop>
<prop key="MaxLimit">25</prop>
<prop key="InitialLimit">2</prop>
<prop key="ConnectionWaitTimeout">60</prop> <!-- 1 min -->
<prop key="InactivityTimeout">1800</prop> <!-- 30 mins -->
<prop key="AbandonedConnectionTimeout">600</prop> <!-- 10 mins -->
</props>
</property>
</bean>
有人可以告诉我为什么1小时后失败,即使交易有效。
答案 0 :(得分:1)
我没有使用多线程,但它失败了。此外,我们需要将线程数配置为至少最小连接数。否则连接将变为陈旧并抛出异常
答案 1 :(得分:0)
是的,我遇到了同样的问题。解决方案的选项是
答案 2 :(得分:-2)
URL应该是xml配置中的url。