ORA-02396:超过最大空闲时间,请再次连接

时间:2015-05-14 05:45:07

标签: java oracle

我使用soap作为Web服务,并使用oracle连接

在我的应用程序中,我在applicationContext-db.xml文件中有这个配置

 <property name="maxActive" value="100"/>
        <property name="maxIdle" value="30"/>
        <property name="maxWait" value="1000"/>
        <property name="defaultAutoCommit" value="true"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="60"/>

但是有一段时间我有这个错误:

06:05:58,239 WARN  [JDBCExceptionReporter] SQL Error: 17008, SQLState: null
06:05:58,239 ERROR [JDBCExceptionReporter] Closed Connection
06:05:58,244 ERROR [JDBCTransaction] JDBC rollback failed
java.sql.SQLException: ORA-02396: exceeded maximum idle time, please connect again

在这种情况下我应该重新启动我的jboss服务器

已更新:

我添加了<property name="testWhileIdle" value="true"/>,但我有与最长空闲时间相关的错误

当我在一段时间内未调用Web服务时出现此错误

我还尝试在配置中修改相同的参数:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>


      <property name="url" value="jdbc:oracle:thin:@192.168.0.12:1521/testSID"/>
        <property name="username" value="test"/>  
        <property name="password" value="test"/>
         <property name="maxActive" value="1500"/>
        <property name="maxIdle" value="1000"/>
        <property name="maxWait" value="20000"/>
        <property name="defaultAutoCommit" value="true"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="3600"/>
    </bean>
</beans>

我认为我应该在oracle中修改空闲时间的配置,而不仅仅是在我的应用程序中。

我认为我应该为用户测试设置空闲时间 UNLIMITED 并更改 resource_limit

但我不知道如何在Oracle中进行此配置并询问是否在oracle中还有其他配置

1 个答案:

答案 0 :(得分:0)

您可以尝试将testWhileIdle属性设置为true

您还可以查看documentation了解其他详细信息。