Почему застрявшие потоки, отличные от конфликтов, такие как медленный ввод-вывод, медленные бэкэнды (запросы к БД, веб-службы, вызовы rmi)? - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь выяснить, каковы основные причины зависания темы.Теперь в WebLogic Server диагностируется поток как застрявший, если он постоянно работает (не работает) в течение заданного периода времени.И если пользователь хочет, он / она может настроить поведение обнаружения потока сервера, изменив продолжительность времени, в течение которого поток будет диагностирован как застрявший (Максимальное время застрявшего потока), и изменив частоту, с которой сервер проверяет наличие застрявших потоков.Мой анализ состоит в том, что это вызвано либо конфликтом, либо другими причинами, такими как медленный ввод-вывод, медленный бэкэнд (запросы к БД, веб-сервисы, вызовы rmi)… редко это вызвано плохим кодированием или огромными данными (бесконечные циклы).

Помимо вышеперечисленных причин, есть ли еще причины для зависания потока?

1 Ответ

1 голос
/ 09 апреля 2019

не уверен, что ваш вопрос здесь, вот мои 2 цента

  • Плохое кодирование может привести к зависанию потоков
    • говорят разработчик, использующий одноэлементную карту или хэш и т. Д., Что все сервлетынеобходимо получить доступ .. при высокой нагрузке это может привести к конфликту за этот ресурс и легко привести к зависанию потоков.
  • Застревание потоков может быть вызвано медленной работой сервера (высокая загрузка процессора)
  • Иногда из-за ошибок в WLS он может быть занят внутренними процессами, что приводит к зависанию потоков ... как, например, WLS, застрявший в связи кластера.
  • Вы даже можете застревать в потоке, когда сервер администратора ожидаетуслышать от управляемого сервера, который не удалось ..

Список можно продолжать и продолжать.Только приняв 3-4 коротких дампа за короткий промежуток времени, можно подтвердить причину.

...