Соединение TomEE-Oracle: соединение уже закрыто - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть некоторые операции вставки / обновления базы данных, выполнение которых занимает более 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

Не повезло.

1 Ответ

0 голосов
/ 29 ноября 2018

Можете ли вы использовать имя службы и использовать URL в этом формате?jdbc: oracle: thin: @myhost: 1521 / myorcldbservicename

Кроме того, вы можете получить соединение через sqlplus или sqldeveloper?

...