oracle - TomEE-Oracle 连接 : Connection has already been closed

标签 oracle tomcat jdbc apache-tomee tomee-7

我有一些数据库插入/更新操作需要 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 = 10
  • MinEvictableIdleTimeMillis = 3600000
  • MinIdle = 5
  • TimeBetweenEvictionRunsMillis = 3600000

运气不好。

最佳答案

能不能用服务名,用这种格式的URL? jdbc:oracle:thin:@myhost:1521/myorcldbservicename

此外,您是否可以通过 sqlplus 或 sqldeveloper 获取连接?

关于oracle - TomEE-Oracle 连接 : Connection has already been closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53495031/

相关文章:

oracle - ora-01882 : TimeZone Region not found with Kafka Connect JdbcSource connector

oracle - 放弃对名称以外的其他内容的 FK 约束

tomcat - 将自签名证书链添加到 keystore

Tomcat JNDI 领域日志记录

java - 如何从在 TomCat 中运行的 Java 应用程序读取 Apache Httpd Env 变量?

java - 如何将 SQLite 与 Java 连接起来?

java - 向 JTable 添加组件

sql - 如何在 Oracle Pro*C 中显示包含主机变量值的 SQL 语句?

sql - 使用connect by子句递归插入

java.net.ConnectException : Connection refused (Connection refused)