У меня установлен Tomcat 6.0. Я пошел настраивать размеры памяти и понял, что она у меня работает на Sun JDK 1.6. клиент JVM. У меня не установлена JVM сервера Sun:
C:\>java -client -version
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
C:\>java -server -version
Error: no `server' JVM at `C:\appl\java\jre6u16\bin\server\jvm.dll'.
Чтобы уточнить: я знаю как для переключения JVM в Tomcat с клиента на сервер. Мне просто нужно выбрать наиболее подходящую JVM для сервера.
Замечу ли я большую разницу между клиентской и серверной JVM? Если мне нужна JVM сервера Sun, нужно ли переустанавливать весь JDK? Есть ли другие бесплатные альтернативы сервера, которые подойдут для работы Tomcat?
Здесь (из Примечания к выпуску Sun) - это ответ, который я искал, по крайней мере, для того, чтобы убедиться, что сервер JDK запущен и работает:
jre\bin\server\
На платформах Microsoft Windows JDK включает как виртуальную машину сервера Java HotSpotTM, так и виртуальную машину клиента Java HotSpotTM. Однако JRE для платформ Microsoft Windows включает только клиентскую виртуальную машину Java HotSpotTM. Те, кто желает использовать виртуальную машину Java HotSpotTM Server с JRE, могут скопировать папку JDK jre \ bin \ server в каталог bin \ server в JRE. Поставщики программного обеспечения могут распространять виртуальную машину Java HotSpotTM Server вместе со своими распространениями JRE.
Вы пробовали использовать файл setenv.sh в TOMCAT_HOME / bin /? Вы должны вручную создать этот файл (например, через vi), а затем добавить параметры Java. Например:
cd TOMCAT_HOME/bin
vi setenv.sh
добавьте в этот файл следующую строку:
экспорт JAVA_OPTS = '- сервер'
Таким образом, ваша JVM должна работать в режиме сервера.
да, вам, вероятно, понадобится серверная JVM. Он настроен на производительность на стороне сервера. Вы не узнаете наверняка, если не попытаетесь провести сравнительный анализ, но я еще не встречал никого, кто бы сказал, что клиентская виртуальная машина работает лучше для их настройки Tomcat.
Что касается того, нужно ли вам загружать весь JDK или нет - я, к сожалению, не знаю.
-server и -client - это просто флаги, которые изменяют характеристики производительности обычной Sun JVM. Если вы не укажете его, JVM угадает. В этом случае он предполагает, что у вас есть машина клиентского класса, и вам просто нужно запустить java с флагом -server, чтобы это изменить.
Видеть: http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html