Как программно запросить текущие настройки памяти 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 оно также должно быть при следующем выпуске. (Бэк-порты были сделаны; просто жду релиза.)