Weblogi c - Oracle DB - SQLException - задача прерывания уже запланирована для потока - и тип SO_TIMEOUT - PullRequest
0 голосов
/ 06 марта 2020

Мы часто получаем ошибку ниже при попытке подключиться к Oracle БД и выполнить запрос. Это приводит к «не может получить ошибку соединения». Количество сбоев резервных запросов источника данных также увеличивается, когда это происходит. Мы не уверены, связано ли это с проблемой сети или проблемой БД или JDB C проблемой с драйвером ?

and the type SO_TIMEOUT

Мы даже увеличили размер пула соединений и номера ulimit. Похоже, что количество ошибок уменьшилось, но оно возвращается снова.

Есть идеи, где может быть проблема? Заранее спасибо.

Caused by: java.sql.SQLException: weblogic.common.resourcepool.ResourceDeadException: Interrupt task is already scheduled for the thread Thread[[ACTIVE] ExecuteThread: '87' for queue: 
'weblogic.kernel.Default (self-tuning)',5,Pooled Threads] and the type SO_TIMEOUT
    at weblogic.common.resourcepool.ResourcePoolImpl.checkAndReturnResource(ResourcePoolImpl.java:1865)
    at weblogic.common.resourcepool.ResourcePoolImpl.checkAndReturnResource(ResourcePoolImpl.java:1795)
    at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:428)
    at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:360)
    at weblogic.jdbc.common.internal.HAConnectionPool.reserve(HAConnectionPool.java:351)
    at weblogic.jdbc.common.internal.HAConnectionPool.reserve(HAConnectionPool.java:242)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:148)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:94)
    at weblogic.jdbc.jta.DataSource.getXAConnectionFromPool(DataSource.java:1902)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1609)
    at weblogic.jdbc.jta.DataSource.getConnectionInternal(DataSource.java:520)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:497)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnectionInternal(RmiDataSource.java:614)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:594)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:587)
    at com.ibatis.sqlmap.engine.transaction.jta.JtaTransaction.init(JtaTransaction.java:68)
    at com.ibatis.sqlmap.engine.transaction.jta.JtaTransaction.getConnection(JtaTransaction.java:131)
    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:518)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:493)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82)

1 Ответ

0 голосов
/ 06 марта 2020

В My Oracle имеется известная ошибка поддержки с драйвером JDB C версии 12.2.0.0.0 и более поздних в отношении времени ожидания запроса. Посмотрите на примечание

Oracle .jdb c .ReadTimeout предотвращает правильную обработку тайм-аута запроса, вызывая утечку соединения (Do c ID 2561983.1)

...