【发布时间】:2018-11-27 07:53:24
【问题描述】:
我有一些数据库插入/更新操作需要 10 多分钟才能完成,因为它们处理非常大的数据集。
我在 TomEE 中对数据源进行了以下配置:
<Resource id="BSLDataSource" type="javax.sql.DataSource">
DefaultAutoCommit = false
JdbcDriver = oracle.jdbc.OracleDriver
JdbcUrl = jdbc:oracle:thin:@host:port:sid
JmxEnabled = true
JtaManaged = true
LogAbandoned = true
MaxActive = 500
MaxIdle = 5
MaxWait = 10000
MinEvictableIdleTimeMillis = 1800000
MinIdle = 0
NumTestsPerEvictionRun = 3
Password = my-password
RemoveAbandoned = true
RemoveAbandonedTimeout = 600
TestOnBorrow = true
TestOnReturn = true
TestWhileIdle = true
TimeBetweenEvictionRunsMillis = 600000
UserName = my-user
ValidationQuery = SELECT 1 FROM DUAL
</Resource>
在运行此类操作时,我收到异常消息:java.sql.SQLException: Connection has already been closed。
我需要进行哪些配置更改,以便:
- 成功执行长时间运行的数据库查询
- 未使用的连接正确关闭
我尝试添加一个新属性:ConnectionProperties = oracle.net.CONNECT_TIMEOUT=3600000;oracle.jdbc.ReadTimeout=3600000,但没有成功。
更新
设置:
MaxIdle = 10MinEvictableIdleTimeMillis = 3600000MinIdle = 5TimeBetweenEvictionRunsMillis = 3600000
运气不好。
【问题讨论】:
标签: oracle tomcat jdbc apache-tomee tomee-7