Почему я не могу прикрепить jvisualvm к экземпляру tomcat, запущенному из osx?

#java #netbeans #jvisualvm

#java #netbeans #jvisualvm

Вопрос:

Я запускаю tomcat из netbeans. Я хотел бы отслеживать использование кучи в этом экземпляре tomcat, поэтому я запускаю jVisualVM. Однако процесс отсутствует в списке. Есть идеи?

Комментарии:

1. Вы уверены, что Tomcat запущен в отдельной JVM? Взгляните на монитор активности.

2. Я на 100% уверен, что tomcat — это отдельная jvm. Я могу выполнить ps-ef и найти процесс tomcat и завершить процесс tomcat, не затрагивая netbeans.

3. 510 org.netbeans. Main 1184 sun.tools.jps.Jps 717 org.netbeans.Main

Ответ №1:

Используете ли вы Java версии 6u24? Тогда вы можете стать жертвой этой ошибки, которая будет исправлена в 6u25 (в двух словах, jVisualVM не может найти ‘hsperfdata вашего процесса).

В противном случае вам придется включить мониторинг через JMX:

Передайте следующие параметры JVM в Tomcat:

 -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
  

Затем добавьте удаленный процесс в jVisualVM через File -> Add JMX Connection. Вы можете подключиться к процессу, используя порт 8888

У jVisualVM есть некоторые другие недостатки, например, пользователь, запускающий jVisualVM, должен быть таким же, как пользователь, владеющий процессом, который вы хотите отслеживать (хотя, я не думаю, что это ваша проблема). Смотрите больше здесь.