Невозможно использовать JConsole с Tomcat, работающим как служба Windows

Я запускаю Tomcat 6.0.18 как службу Windows. В служебном апплете jvm настроен по умолчанию, т.е. он использует jvm.dll JRE.

Я пытаюсь отслеживать это приложение с помощью JConsole, но не могу подключиться к нему локально. Я добавил параметр -Dcom.sun.management.jmxremote (который работает при запуске tomcat с помощью скрипта start.bat). Но jvm вроде не подхватывает параметр.


person Kees de Kooter    schedule 02.02.2009    source источник


Ответы (6)


Есть приятный графический интерфейс для редактирования параметров, нет необходимости возиться с реестром.

Откройте C: \ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ bin \ tomcat6.exe (или просто дважды щелкните значок монитора на панели задач). Перейдите на панель Java, добавьте следующее в список аргументов и перезапустите Tomcat.

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

Затем вы можете подключиться с помощью JConsole или более новой версии VisualVM.

person Community    schedule 17.02.2009
comment
С этой конфигурацией я могу подключиться к процессу как удаленный процесс на localhost:8086 (не нужно вводить имя пользователя и пароль) - person Edd; 14.11.2014
comment
Замечание: tomcat6.exe панель конфигурации теперь называется Tomcat7w.exe - person Evandro Silva; 07.01.2017

Вот предписанный способ изменения jvmoptions и взаимодействия с сервисом:

http://tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html

Я бы попытался зайти в ваш реестр по адресу HKLM / Software / Apache Software Foundation / Procrun 2.0 // Parameters / Java и напрямую отредактировать многострочное значение «Options».

person Ron    schedule 02.02.2009
comment
Если на 64-битной версии, HKLM \ SOFTWARE \ Wow6432Node \ Apache Software Foundation \ Procrun 2.0 \ ‹name› \ Java - person TJR; 27.10.2011

Я отправляю его в основном для записи этой информации себе, я не проверял ее - но это тоже должно работать:

http://mysqlandsqlserver.blogspot.com/2010/02/jconsolejmap-and-tomcat-as-windows.html

person ripper234    schedule 16.04.2010
comment
Это сработало для меня на ноутбуке с 64-битной Windows. Дополнительный балл за то, что не требуется установка дополнительного программного обеспечения. - person hshib; 02.06.2016

По-прежнему существует довольно простой способ подключить JConsole к процессу Java, запущенному как служба Windows, с использованием локального режима, который я обнаружил здесь.

В основном это говорит о том, что для подключения к процессу Java, запущенному как служба Windows, вам необходимо запустить JConsole как службу Windows (вы можете сделать это, используя собственный API Windows или любую оболочку, например yajsw.)

Кстати, это избавит вас от необходимости перезапускать Java-процесс, который был для меня критичным.

person Andrei    schedule 27.10.2015

Если Tomcat работает как служба Windows и вы хотите подключиться к JVM локально, вам необходимо запустить VisualVM или JConsole как системную учетную запись. Для этого можно использовать Sysinternals PsExec.exe.

psexec.exe -i -s c:\visualvm\bin\visualvm.exe
person Community    schedule 01.05.2009
comment
Похоже, это не сработало. D: \ Packages \ Java \ jdk1.6.0_25 \ bin ›psexec -i -s jvisualvm.exe PsExec v1.98 - Удаленное выполнение процессов Copyright (C) 2001-2010 Марк Руссинович Sysinternals - www.sysinternals.com jvisualvm.exe завершен на MACHINENAME01 с кодом ошибки -1073741819. - person Chloe; 06.07.2012

Добавьте следующее в верхней части файла catalina.bat

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote ^
    -Dcom.sun.management.jmxremote.port=8086 ^
    -Dcom.sun.management.jmxremote.ssl=false ^
    -Dcom.sun.management.jmxremote.authenticate=false

Остановить и перезапустить tomcat (очевидно)

Запустите jconsole.exe. Если ваш tomcat работает как служба, запустите jconsole.exe от имени администратора.

Выберите Remote Process и введите localhost: 8086

person Ross Attrill    schedule 22.03.2012
comment
Я добавил эти параметры в файл setEnv в каталоге tomcat7, он работает как шарм. - person Harika Mamidi; 21.11.2014