title: Thread dump showing Runnable state, but its hung for quite a long time
body: <p>We are facing an unusual problem in our application, in the last one month our application reached an unrecoverable state, It was recovered post application restart.</p>
  
  <p>Background : Our application makes a DB query to fetch some information and this Database is hosted on a separate node.</p>
  
  <p>Problematic case : When the thread dump was analyzed we see all the threads are in runnable state fetching the data from the database, but it didn't finished even after 20 minutes.</p>
  
  <p>Post the application restart as expected all threads recovered. And the CPU usage was also normal.</p>
  
  <p>Below is the thread dump</p>
  
  <blockquote>
    <p>ThreadPool:2:47" prio=3 tid=0x0000000007334000 nid=0x5f runnable
    [0xfffffd7fe9f54000]    java.lang.Thread.State: RUNNABLE  at
    oracle.jdbc.driver.T2CStatement.t2cParseExecuteDescribe(Native Method)
      at
    oracle.jdbc.driver.T2CPreparedStatement.executeForDescribe(T2CPreparedStatement.java:518)
      at
    oracle.jdbc.driver.T2CPreparedStatement.executeForRows(T2CPreparedStatement.java:764)
      at ora</p>
  </blockquote>
  
  <pre><code>All threads in the same state.
  </code></pre>
  
  <p>Questions:  </p>
  
  <ol>
  <li>what could be the reason for this state?</li>
  <li>how to recover under this case ?</li>
  </ol>