Oracle连接池 - 在连接缓存中找到无效或过时连接

时间:2011-06-30 12:50:40

标签: oracle connection-pooling

我看到运行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小时后失败,即使交易有效。

3 个答案:

答案 0 :(得分:1)

我没有使用多线程,但它失败了。此外,我们需要将线程数配置为至少最小连接数。否则连接将变为陈旧并抛出异常

答案 1 :(得分:0)

是的,我遇到了同样的问题。解决方案的选项是

答案 2 :(得分:-2)

URL应该是xml配置中的url。