Несоответствия Tomcat + неопределенность в установлении путей - PullRequest
2 голосов
/ 16 ноября 2011

Фон

Поскольку это первый вопрос, который я написал, я постараюсь разбить его как можно лучше, и я прошу прощения за любые неправильные форматы.Я также должен отметить, что я новичок в Linux, Tomcat и Java (все в течение последних нескольких недель), поэтому, если у вас есть ответ, пожалуйста, набросайте его как можно больше.Спасибо!

Этот вопрос на самом деле состоит из нескольких вопросов, но я чувствую, что проблемы как-то связаны, поэтому я включу их все.Что касается моей среды, я использую экземпляр EC2 Amazon Linux.Сведения, возвращаемые с использованием cat /proc/version:

  • версия Linux 2.6.35.14-97.44.amzn1.x86_64 (mockbuild@build-31006.build)
  • (версия gcc 4.4.5 20110214(Red Hat 4.4.5-6) ​​(GCC)

java -version дает мне:

  • Java-версия "1.6.0_29" Java (TM) SE Runtime Environment(сборка 1.6.0_29-b11)
  • Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 20.4-b02, смешанный режим)

Выпуск (ы)

  1. Что позволило бы мне иногда останавливать / перезапускать Tomcat, но не другие? После изменения параметров конфигурации и необходимости перезапуска Tomcat я использую /etc/init.d/tomcat6 restart или service tomcat6 restart с различной степенью успеха: иногда приятный зеленыйХорошо, другие - красный СБОЙ. Кажется, что нет никакой причины или причины, почему это работает иногда, а не другие. Когда это не работает, я проверяю статус с помощью service tomcat6 status, что дает что-то вроде tomcat6 (pid ####) работает . Также стоит отметить, что мой SSH-сеанс Putty замедляется значительно в то же время, чтовсякий раз, когда я не могу остановить Tomcat.Я буквально должен ждать обработки каждого нажатия клавиши!
  2. Я не могу использовать какие-либо специфичные для JVM параметры -XX.Каждый раз я получаю сообщение об ошибке Невозможно создать виртуальную машину Java. Из потоков, о которых я читал, большинство проблем с выделением памяти в объемной куче, но я не думаю, что это моя проблема, потому что когда язапустите java -XX, который должен дать мне список доступных команд, как и java -X, я просто получаю:

    Нераспознанная опция: -XX Не удалось создать виртуальную машину Java.

Я должен отметить, что у меня было как минимум две версии Java в этой ОС - она ​​шла с Open JDK, но мне требовался Sun Java, так как это было рекомендовано для производительности в Geoserver (который являетсявесь смысл в том, что я все это изучаю).Я прочитал, что наличие двух версий не является проблемой, если мой путь JAVA_HOME указывает на правильный каталог, но возможно ли, что он все же каким-то образом просматривает что-то из исходной конфигурации?Это то, что я подумал, поэтому, чтобы исключить это, я сделал yum remove java, который стер оригинальную версию (вместе с Tomcat из-за зависимости, но я могу получить ее позже), запустил java -version, чтобы убедиться, что явсе еще была версия, которую я хотел.Я сделал, затем запустил java -XX, надеясь, что он волшебным образом исправился после очистки дома с нежелательным удалением OpenJDK, но NOPE, та же ошибка, что и раньше.

Выводы

Теперь я предполагаю, что со старыми путями проблем не было.Я также попытался изменить переменную JAVA_HOME на соответствующий путь ( / usr / java / jre1.6.0_29 ) в каждом возможном месте:

  • в bash_profile
  • в bashrc
  • java.conf
  • tomcat6.conf (ну, прежде чем я удалил Tomcat, то есть)
  • , вероятно, некоторые другие файлы.Это все размытие на самом деле.
  • export JAVA_HOME в оболочке

... все с нулевым воздействием, за исключением использования export JAVA_HOME=/usr/java/jre1.6.0_29.Каждый раз, когда я запускал echo $JAVA_HOME, я все равно получал исходный путь JAVA_HOME, который, я уверен, не тот, который я хочу.Даже после сброса переменной (через экспорт в оболочке) я все равно получил ошибку -XX.Я также попытался установить некоторые параметры JAVA_OPTS, особенно для настроек памяти, затем запустил echo $JAVA_OPTS, который ничего не возвращал.

Я потратил целых два дня на это и собираюсь сдаться.Я действительно хотел бы избежать переустановки и перенастройки целой кучи вещей, если это возможно, не говоря уже о том, что я даже не знаю, решит ли это мою проблему, но мне бы очень хотелось узнать, ПОЧЕМУ у меня возникли эти проблемы ине они связаны, поэтому, если у кого-то из вас есть предложения по этому поводу или что-то в целом, что я делаю неправильно, пожалуйста, дайте мне знать.Спасибо!

1 Ответ

0 голосов
/ 16 ноября 2011

Я не могу помочь вам с первой проблемой, но в отношении вашей второй проблемы: «Я не могу использовать ни один из специфических для JVM параметров -XX».:

переменная окружения CATALINA_OPTS используется tomcat при запуске JVM. Поэтому, если вы хотите использовать 512 МБ кучи и 128 МБ пространства perm gen, вы можете выполнить следующую команду в оболочке bash, чтобы запустить tomcat с некоторыми пользовательскими настройками Java.

#> CATALINA_OPTS="$CATALINA_OPTS -Xmx512m -XX:MaxPermSize=128m" $TOMCAT_HOME/bin/catalina.sh run

вы также можете изменить параметры по умолчанию, изменив CATALINA_OPTS в скрипте запуска tomcat или добавить параметр в вашу среду (например, $ HOME / .bashrc).

надеюсь, это поможет.

...