Как программно запросить текущие настройки памяти Apache TomCat7 в Windows?

Мы используем chef для установки и настройки нашего программного обеспечения.

Я хочу добавить конфигурацию в Tomcat, чтобы изменить настройки памяти.

Если я просто добавлю это в конфигурацию сейчас, она будет продолжать добавлять и добавлять и добавлять каждый раз при запуске.

Согласно этой статье, вы можете сделать это в командной строке, используя что-то вроде этого:

tomcat6 //US//Tomcat6 --JvmMx 1024 ++JvmOptions="-XX:MaxPermSize=256m"

мы используем tomcat7, поэтому мы изменили его на:

tomcat7 //US//Tomcat7 --JvmMx 1024 ++JvmOptions="-XX:MaxPermSize=256m"

Есть упоминание об использовании tomcat6 //ES/Tomcat6 для запроса.

Я надеялся, что он выведет его на стандартный вывод, но это не так.

Где-нибудь я могу программно проверить текущие настройки, чтобы не добавлять его снова и снова.

Потенциальные ответы не должны быть конкретными для шеф-повара, просто командная строка будет хорошей.

1 ответ

Обычный "программный" способ сделать это будет через JMX, но так как вы сказали:

просто командная строка

Вы можете использовать reg.exe, чтобы получить параметры Java для сервиса, которые хранятся в реестре:

reg query "HKLM\Software\Apache Software Foundation\Procrun 2.0\<TOMCAT_SERVICE_NAME>\Parameters\Java" 

Это сбросит все параметры Java, и в вашем случае вы ищете "JvmMx".

В commons-procrun v1.2.3 в список добавлена новая команда: print-config

Вы можете запустить это так:

tomcat7 //PS//Tomcat7

и он выгрузит для вас существующую конфигурацию.

Это было добавлено в Tomcat 7.0.106, и в следующих версиях Tomcat 8.5 и Tomcat 9.0 оно также должно быть при следующем выпуске. (Бэк-порты были сделаны; просто жду релиза.)

Другие вопросы по тегам