Jstack и Jstat перестали работать с обновлением до JDK6u23 - PullRequest
18 голосов
/ 01 марта 2011

Мы недавно обновили JDK6u20 (Linux, 32-разрядная и 64-разрядная версия) до JDK6u23.С тех пор мы больше не можем использовать инструменты jstack и jstat для получения информации о мониторинге из запущенного процесса.Если мы вернемся к JDK6u20, все будет нормально.

Мы работаем с Tomcat 6. Согласно этому сообщению на форуме, у других возникает та же проблема: http://forums.oracle.com/forums/thread.jspa?threadID=2151967&tstart=0

Запуск простых простых процессов Javaиспользование инструментов работает.

Jstack говорит: невозможно открыть файл сокета: целевой процесс не отвечает или виртуальная машина HotSpot не загружена Опцию -F можно использовать, когда целевой процесс не отвечает.

Jstat говорит: 19799 не найдено

Использование Jps вообще не показывает запущенные процессы, поэтому я предполагаю, что проблема носит более общий характер с JDK6u23, а также с JDK6u24.У него новый движок Hotspot.Может быть, что-то не работает в сочетании с Tomcat и этим Hotspot v19.

Есть идеи?Помощь приветствуется.

PS Конечно, мы запускаем его как тот же пользователь, и больше ничего не изменили.Только JDK.

Ответы [ 2 ]

12 голосов
/ 04 марта 2011

Найден возможный ответ на форуме Oracle:

Хотя 6u23 / 24 и представляет эту проблему, в jps это не ошибка.Скорее изменение в поведении самой виртуальной машины.В GNU / Linux Jps и тому подобное, похоже, смотрят только на / tmp, но не обязательно на CATALINA_TMPDIR.Если установлено или нет, попробуйте экспортировать CATALINA_TMPDIR = / tmp, что переводится как «-Djava.io.tmpdir = / tmp», и после перезапуска процесса Tomcat вы должны увидеть данные Tomcat как «/ tmp / hsperfdata_ /», и Jps наиболее вероятноработать еще раз.

4 голосов
/ 07 марта 2011

См. jps не возвращает выходных данных, даже когда процессы Java запускаются , чтобы узнать, как указать jps или jstat для подключения к temp-dir Tomcat

...