Jstack и Jstat перестали работать с обновлением до JDK6u23
Недавно мы обновили JDK6u20 (Linux, 32bit и 64bit) до JDK6u23. С тех пор мы не можем больше использовать инструменты jstack и jstat для получения информации мониторинга из текущего процесса. Если мы вернемся к JDK6u20, все будет хорошо.
Мы работаем с Tomcat 6. Согласно этому сообщению на форуме, у других проблемы одинаковые:
http://forums.oracle.com/forums/thread.jspa?threadID=2151967&tstart=0
Запуск простых простых процессов Java и использование инструментов.
Jstack говорит: не удается открыть файл сокета: целевой процесс не отвечает или не загружен VM HotSpot. Опция -F может использоваться, когда целевой процесс не отвечает.
Jstat говорит: 19799 не найден
Использование Jps вообще не отображает запущенные процессы, поэтому я предполагаю, что проблема имеет более общий характер с JDK6u23, а также JDK6u24. У этого есть новый двигатель Hotspot. Возможно, что-то не работает в сочетании с Tomcat и Hotspot v19.
Любая идея? Помощь приветствуется.
P.S. Конечно, мы запускаем это как один и тот же пользователь, и мы ничего не изменили. Только JDK.
Ответы
Ответ 1
Найденный возможный ответ на форуме Oracle:
Хотя это правда, что 6u23/24 представляет эту проблему, это не ошибка в jps. Скорее изменение в поведении самой ВМ. В GNU/Linux Jps и подобных кажется, что они смотрят только на /tmp, но не обязательно на ваш CATALINA_TMPDIR. Если установлено или нет, попробуйте экспортировать CATALINA_TMPDIR =/tmp, который переводится в "-Djava.io.tmpdir =/tmp", и после перезапуска процесса Tomcat вы должны увидеть данные Tomcat как "/tmp/hsperfdata_/", а Jps, скорее всего, снова работайте.
Ответ 2
См. jps не возвращает выход даже при запуске java-процессов для инструкции, как сообщать jps или jstat для подключения к Tomcat temp-dir