Невозможно использовать JConsole с Tomcat, работающим как служба Windows
Я запускаю tomcat 6.0.18 в качестве службы Windows. В апплете службы jvm настроен по умолчанию, то есть использует jvm.dll JRE.
Я пытаюсь контролировать это приложение с помощью JConsole, но не могу подключиться к нему локально. Я добавил параметр -Dcom.sun.management.jmxremote(который работает при запуске tomcat с помощью start.bat script). Но jvm, похоже, не подбирает параметр.
Ответы
Ответ 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 и отредактировать значение многострочного значения "Параметры" напрямую.
Ответ 3
Я отправляю его в основном для записи этой информации для себя, я ее не проверял - но это должно работать также:
http://mysqlandsqlserver.blogspot.com/2010/02/jconsolejmap-and-tomcat-as-windows.html
Ответ 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