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