Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

Там есть хороший графический интерфейс для редактирования параметров, не нужно гадать в реестре.

Откройте 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.

Ответ 2

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

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

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

Ответ 4

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

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

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

Ответ 5

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

psexec.exe -i -s c:\visualvm\bin\visualvm.exe

Ответ 6

Добавьте следующее вверху вашего файла 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 как администратор.

Выберите Удаленный процесс и введите localhost: 8086