Как я могу отслеживать Tomcat с помощью jvisualvm, показывая visualgc?

Я дважды проверил следующее:

  • Я запускаю jvisualvm на том же компьютере, на котором работает Tomcat.
  • Это Java 6u19.
  • Моя служба Tomcat работает так же пользователь, под которым я вошел в систему.
  • Моя служба Tomcat использует тот же каталог JVM, из которого я использую jvisualvm.
  • В Tomcat включен JMX для определенного порта, но я не думаю, что это поможет мне .

При всем этом я действительно вижу свой процесс 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.

6
задан Eddie 5 August 2011 в 23:34
поделиться