我使用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中还有其他配置