VisualVM, зависающий при запуске "вычислительное описание"

У меня есть два удаленных сервера, работающие с недавними CentOS, и запущенные последние Tomcat6, последние JDK6 и VisualVM 1.3.2.

ssh -X переадресация работает на одном сервере - я могу запустить VisualVM с этой машины, он пересылает и работает нормально - я вижу, что все процессы JVM, запущенные на этой удаленной машине, являются "локальными" в VVM.

ssh -X переадресация на второй машине, а затем запуск VisualVM - вызывает в нем X-окна с VVM, но он просто показывает один "локальный" процесс - сам VisualVM, а нижний правый угол имеет индикаторную панель прогресса что говорит "вычислительное описание", и оно никогда не заканчивается.

Я ничего не могу найти об этом - кто-нибудь когда-либо ударил это? Как мне пройти мимо этого?

Ответы

Ответ 1

У меня возникла аналогичная проблема - VisualVM висит над "вычислением описания", не отображая никаких локальных JVM, кроме себя. Я использовал "jps", чтобы найти все JVM, запущенные в системе. Используется jstack, чтобы получить стеки всех этих JVM, включая JVisualVM. То, что я обнаружил, было то, что JVisualVM пытался создать соединение RMI с одной из целевых виртуальных машин, и эта виртуальная машина висела на попытке подключения RMI. В моем случае причина, по которой он повесился, состояла в том, что у меня был профилировщик JVisualVM, прикрепленный к этой JVM, но JVisualVM затем умер с помощью OG PermGen. Части профилировщика все еще работали в целевой JVM, но висели из-за отсутствия интерфейса профилировщика; таким образом, любая попытка загрузки класса будет зависать, что приведет к зависанию входящего RMI из нового экземпляра JVisualVM. Перезапуск затронутой JVM разрешило проблему.

Без любых дампов потоков я не могу сказать, была ли ваша проблема чем-то вроде моей или нет; но если кто-то снова получит эту проблему, сбор пробных дампов - хорошая идея. Какова бы ни была первопричина, перезапуск всех JVM на вашем поле (например, перезагрузка) имеет разумные шансы его решить.