Я дважды проверил следующее:
При всем этом я действительно вижу свой процесс Tomcat в списке «Локальный» для jvisualvm. Он отображается как «<Неизвестное приложение> (pid 5644)». Если я дважды щелкну по нему, то на каждой вкладке будет отображаться «Не поддерживается для этой JVM». Однако VisualVM отображается как «Локальный», и все вкладки для него работают, очевидно, с использованием одного и того же экземпляра JVM. Нет очевидного способа добавить JMX-соединение к экземпляру «<Неизвестное приложение>».
Я действительно вижу экземпляр JMX Tomcat в «Local» как «localhost: (мой номер порта)», и это работает, но на вкладке Visual GC отображается «Не поддерживается для этой JVM», что, как я полагаю, означает, что Visual GC не работает через JMX.
Что я делаю не так? Я пробовал запустить jstatd. Это не имело значения. Когда я запускаю jstatd, visualvm видит «Local» «jstatd», но когда я дважды щелкаю по нему, кажется, что он отслеживает этот процесс jstatd, а не какой-либо другой процесс Java.
ПРИМЕЧАНИЕ. Я решил попробовать запустить Tomcat не как сервис, но прямо в окне CMD и, альт, теперь visualvm отлично работает. Я подумал, что попробую это сделать, когда я запустил «jps» и получил жалобу «информация о процессе недоступна», поискал в Google по этому поводу и нашел кого-то, кто сказал, что получил это, когда запускал любое приложение Java в качестве службы. Это помогает в тестовой среде, но не помогает понять, как контролировать производственную систему.
Это Tomcat, работающий как служба Windows под оболочкой Tanuki на Windows Server 2003.