У нас есть приложение, развернутое на сервере WebSphere, работающем в UNIX, и мы столкнулись с двумя проблемами:
- зависание системы, которое восстанавливается через несколько минут — для расследования нам понадобится дамп потока (javacore).
- зависание системы, которое не восстанавливается и требует перезапуска WebSphere — для расследования нам потребуются дамп потока и дамп кучи.
Проблема в том, что когда происходит зависание системы, мы не знаем, проблема ли это 1 или 2.
В идеале мы хотели бы сначала вручную сгенерировать дамп потока и подождать, пока система восстановится. Если нет, то перед перезапуском WebSphere мы создаем дамп потока и дамп кучи.
Я знаю о команде kill -3
(или kill -QUIT
). Команда сгенерирует только дамп потока (если параметр IBM_HEAPDUMP=false
) или дамп потока и дамп кучи (если IBM_HEAPDUMP=true
). Однако IBM_HEAPDUMP
должен быть установлен до запуска WebSphere и не может быть изменен во время работы WebSphere.
Правильно ли я понимаю параметр IBM_HEAPDUMP
и команду kill -3
?
Кроме того, возможно ли получить журналы так, как я описал? (т. е. при создании диагностики JVM выберите, создавать ли дамп кучи или нет на лету)