JAVA_OPTS, установленный в catalina.sh, не работает для частного экземпляра TOMCAT

Я разместил параметры JVM через JAVA_OPTS в файле catalina.sh в базе данных Catalina. Однако система не выбирает эти параметры — я пытаюсь передать информацию профилирования, чтобы установить пути для свойств проекта и файлов журналов. Я должен установить параметры в setenv.sh в корзине частного экземпляра. Даже команда echo, которую я поместил в catalina.sh для просмотра JAVA_OPTS, не печатает значения по умолчанию, такие как CATALINA_BASE и т. д. печатайтесь. Catalina.sh вообще обрабатывается?

В конце концов, моя система отлично работает с setenv.sh. Мне любопытно, почему JAVA_OPTS не загружается из catalina.sh.

Я использую Ubuntu 12.04 с установленным TOMCAT 7 и JDK 1.7.

Спасибо


person user20507    schedule 13.07.2014    source источник


Ответы (3)


Вы не должны редактировать файл catalina.sh - так указано в этом файле. Вместо этого, чтобы установить свои переменные среды, создайте файл setenv.sh в том же каталоге, где находится catalina.sh (называемый CATALINA_BASE/bin ) и напишите в нем свой код.

Пришлось самому задавать переменную JAVA_OPTS, а файл bin/setenv.sh я создал, установил в него исполняемый файл chmod +x bin/setenv.sh и прописал в нем:

JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx512m -server"

который установил мою начальную выделенную память на 128 и максимальную память на 512 МБ. И это работало.

person cst1992    schedule 18.12.2015
comment
вы не сказали, что делает -server. - person nikk; 01.07.2016
comment
@nikk stackoverflow. ком/вопросы/198577/ - person cst1992; 02.07.2016

catalina.sh имеет много условных выражений - со мной не раз случалось, что я редактировал неправильную позицию, или ту, которая была перезаписана позже в этом файле. setenv.sh работает нормально, и именно для этого он и нужен: представьте, что вы устанавливаете обновление tomcat — оно перезапишет ваш catalina.sh. Однако tomcat никогда не поставляется с setenv.sh, поэтому он не перезапишет ваши изменения.

Кроме того, вы можете определить CATALINA_OPTS вместо JAVA_OPTS: это параметры, которые используются для запуска tomcat. Если частью вашей конфигурации является JAVA_OPTS="-Xmx16G -Xms16G", вы должны выделить 16G пространства кучи, когда пытаетесь выключить tomcat: процесс выключения также порождает JVM с параметрами JAVA_OPTS. Только процесс запуска запускается со средой CATALINA_OPTS (в дополнение к JAVA_OPTS), поэтому, скорее всего, это то, что вы хотите настроить / настроить, иначе вы рискуете не остановить tomcat из-за нелепых требований к памяти для shutdown.sh.

person Olaf Kock    schedule 14.07.2014

отредактируйте: /etc/default/tomcat7 или /etc/default/{user_who_runs_tomcat}

e.g.:

*JAVA_OPTS="-Djava.awt.headless=true -Xmx2G -XX:+UseConcMarkSweepGC -server -XX:MaxPermSize=384m"*
person konrad    schedule 13.07.2014
comment
Можете ли вы объяснить это немного больше? Почему не работают настройки catalina.sh? - person user20507; 13.07.2014