title: Weblogic - Oracle DB - SQLException - Interrupt task is already scheduled for the thread - and the type SO_TIMEOUT
body: <p>We are getting below error frequently while trying to connect to Oracle DB and execute a query. This results in 'cannot obtain connection error'.
  The <strong>Failed Reserve Request Count</strong> of Data Source is also increasing when this happens. 
  We are not sure if this is due to <strong>network issue</strong> or the <strong>DB issue</strong> or <strong>JDBC driver issue</strong>? </p>
  
  <pre><code>and the type SO_TIMEOUT
  </code></pre>
  
  <p>We even increased the connection pool size and ulimit numbers. Looked like the occurrence of the error was reduced, but it is coming back again.</p>
  
  <p>Any idea where the issue could be? Thanks in advance.</p>
  
  <pre><code>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)
  </code></pre>