Как включить JMX на tomcat7, работающем как служба Windows?
Я опубликовал это широко, прежде чем публиковать его здесь. Я пытался выяснить, как включить JMX Access на экземпляре Tomcat, установленном как служба Windows. Его довольно просто, когда Tomcat вызывается через startup.bat script, нужно просто установить переменную среды CATALINA_OPTS в нечто вроде "-Dcom.sun.management.jmxremote.port = 1234 -Dcom.sun.management.jmxremote. authenticate = false -Dcom.sun.management.jmxremote.ssl = false"
Но как мне получить сервис Tomcat Windows для чтения этих параметров? Я пробовал это:
C: > tomcat\server\bin > service.bat install # установить службу Windows Tomcat7
C: > tomcat\server\bin > tomcat7.exe//US//Tomcat7 ++ JvmOptions "-Djava.io.tmpdir = $INSTDIR\server\temp; -XX: MaxPermSize
= 256m; -Dcom.sun.management.jmxremote.port = 8090; -Dcom.sun.management.jmxremote.au
thenticate = false; -Dcom.sun.management.jmxremote.ssl = false "--JvmMs 256 --JvmMx 1
024 # обновить установленную службу с помощью//US-переключателя; установить tmpdir, доступ JMX и размер кучи
Когда я запускаю сервис из панели "Службы", служба не запускается, и я получаю следующую ошибку в файле logs\tomcat7-stderr-yyyy-mm-dd.log:
yyyy-mm-dd hh: mm: ss Commons Daemon procrun stderr инициализирован
Ошибка: недопустимый номер com.sun.management.jmxremote.port: 8090 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false
У меня нет фона Java, я пытаюсь достичь чего-то диковинного здесь? Просьба сообщить.
Ответы
Ответ 1
Отвечая на мой вопрос; оказалось легче, чем я думал.
Следующее необходимо сделать, чтобы включить доступ JMX для Tomcat, установленный как служба Windows, который имеет имя "ApacheTomcatWindowsServer", например:
- Установите Tomcat как службу Windows, либо используя команду (сначала cd в \bin \)
service.bat install
или ваши собственные скрипты.
- Включите Apache Service Manager для установленной службы, используя следующую команду:
tomcat7w.exe //MS//ApacheTomcatWindowsServer
Это должно запустить программу Apache Service Monitor на панели задач. Нажмите на значок. выберите "Настроить", перейдите на вкладку "Java" и добавьте следующее в текстовое поле "Параметры Java", по одному в строке:
-Dcom.sun.management.jmxremote.port=8090
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Сохраните и выйдите и перезапустите службу.
- Чтобы подключиться к консоли JMX, выполните пожар
jconsole
с вашей установки JDK, нажмите "Новое соединение", укажите "Удаленный процесс" и введите hostname:8090
.
Ответ 2
вы также можете удалить службу с помощью
service.bat remove
затем отредактируйте service.bat и добавьте параметры в StartPath и добавьте параметры
-Djavax.management.builder.initial =; - Dcom.sun.management.jmxremote.port = 8090; -Dcom.sun.management.jmxremote.authenticate = ложь; -Dcom.sun.management.jmxremote.ssl = ложь
вот образец StartPath в моем файле
- StartPath "C:\tomcat7 \" --Startup auto --JvmOptions "-Dcatalina.home =% CATALINA_HOME%; - Dcatalina.base =% CATALINA_BASE%; - Djava.endorsed.dirs =% CATALINA_HOME%\одобрил; -Djava.io.tmpdir =% CATALINA_BASE%\Temp; -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager; -Djava.util.logging.config.file =% CATALINA_BASE%\конф\протоколирования .properties; -Djava.rmi.server.hostname =; - = Djavax.management.builder.initial; - Dcom.sun.management.jmxremote.port = 8090; -Dcom.sun.management.jmxremote.authenticate = ложь; - Dcom.sun.management.jmxremote.ssl = false" % JAVA_OPTS% ^
переустановите службу на
service.bat install
затем запустите Tomcat, чтобы применить изменения.