Дамп потока показывает состояние Runnable, но зависает довольно долго

Мы столкнулись с необычной проблемой в нашем приложении. В течение последнего месяца наше приложение достигло неустранимого состояния. Оно было восстановлено после перезапуска приложения.

Справочная информация: наше приложение делает запрос к базе данных для получения некоторой информации, и эта база данных размещается на отдельном узле.

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

Выполните перезапуск приложения, как ожидалось, все потоки восстановлены. И загрузка процессора тоже была нормальной.

Ниже приведен дамп потока

ThreadPool: 2: 47 "prio = 3 tid = 0x0000000007334000 nid = 0x5f запускается. [0xfffffd7fe9f54000] java.lang.Thread.State: ВЫПОЛНЯЕТСЯ в oracle.jdbc.driver.T2CStatement.t2cParseExecuteDescribe (собственный метод) в oracle.jdbc.driver.T2CPreparedStatement.executeForDescribe (T2CPreparedStatement.java:518) в oracle.jdbc.driver.T2CPreparedStatement.executeForRows (T2CPreparedStatement.java:764) at ora

All threads in the same state.

Вопросы:

  1. в чем может быть причина этого состояния?
  2. как восстановить в этом случае?
8
задан BЈовић 29 January 2012 в 14:16
поделиться