Websphere. WSVR0605W: Зависание процесса в пуле / Thread SIBJMSRAThreadPool hung

max аватар
97
Находится в разделах:

При возникновении зависания потока, сопровождаемого сообщением 

Возможным решением проблемы может стать расширение пула соответствующих процессов. 

Сообщение может содержать название различных пулов в зависимости от того, какой из них вызвал зависание. 

Например, 

Может содержать один из доступных пулов:

  • Default pool
  • ORB.thread.pool
  • SIBFAPInboundThreadPool
  • SIBFAPThreadPool
  • SIBJMSRAThreadPool
  • TCPChannels.DCS
  • WMQCommonServices
  • WMQJCAResourceAdapter
  • WebContaner (довольно распространено)
  • server.startup
Все эти пулы имеются в каждом управляемом сервере (managed server) в вебсфере.
К ним можно добраться из консоли администратора ( обычно вида http://yourhost:9061/ibm/console)
Для этого выбираем в меню Servers -> Websphere Application servers -> YourServer.
В разделе Additional Properties выбираем Thread Pools

websphere thread ppols
В списке пулов выбираете тот, в котором произошло зависание.
И меняете параметры Minimum Size  и Maximum Size.
 websphere thread pool options
Зачем менять эти параметры?
Проблема в том, что при максимальном значении пула, скажем в 10 потоков, может произойти такая ситуация:
На сервере происходит интенсивное выполнение заданий, все 10 потоков заняты. 
Бизнес-логика пытается получить еще один поток, 11-ый. Фабрика не выдает его, поскольку все заняты. Мы переходим в режим ожидания нашей очереди, а все 10 потоков и не думают прекращать свое выполнение, поскольку у них и так много работы. В итоге, проходит максимальное время ожидания, по дефолту в 10 минут, и выдается ошибка о зависании. 
Такие моменты неприятны и могут вызвать зависание всего процесса. От чего придется перезапускать управляеымй сервер. 

Конец
Иммануил Кант склоняется к тому, что если дать человеку все, чего он желает, то в ту же минуту он почувствует, что это все не есть все.

Да вот хрен. Виснет так, что даже перезапуск сервера не помогает. Насмерть виснет. Сообщение застревает в статусе "Удаление" и не может быть удалено, т.к. уже передано приемнику, но в тоже время по таймауту должно быть сброшено.

В результате:

CWSIP0362W: Сообщение с ИД 71000000 невозможно удалить из получателя бла-бла-бла, поскольку оно было передано приемнику...

И хоть кол на голове серверу теши.

max аватар

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

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке