Как включить 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, чтобы применить изменения.