вторник, 7 июня 2011 г.

Порядок применения параметров запуска weblogic-сервера.

Несколько способов запустить сервер с нужными параметрами.
1. Непосредственно из командной строки, написав конструкцию вида:
java [JVM options] [Weblogic Options] weblogic.Server
Собственно, компонованием этой строки и занимается startWeblogic.sh, лежащий в $MW_HOME/bin. Этот скрипт рекомендован Oracle для запуска и остановки серверов. Его можно немного подредактировать под свои нужды или передать ему пару параметров прямо из командной строки
nohup sh $DOMAIN_HOME/bin/startWebLogic.sh -Dweblogic.management.username=weblogic -Dweblogic.management.password=password > wls_start.log &
2. Запуск Admin-сервера командой startServer из консоли WLST. Пример такой команды можно посмотреть, набрав
help('startServer') 
3. Запуск серверов из консоли WLST с помощью NodeManager командой
nmStart('ServerName')
В первом случае все параметры запуска задаются в тексте команды. Во втором параметры запуска jvmArgs передаются как аргумент метода startServer(). В третьем случае параметры берутся из конфиг-файлов и скрипта запуска. Параметры, хранящиеся в файле config.xml в этом случае не применяются. Они там просто хранятся.

Есть свои правила применения параметров при запуске сервера через Nodemanager:
1. В первую очередь применяются параметры, указанные явно в консоли WLST. В этом случае мы переопределяем всё, что  было задано другими методами.
arg="Arguments=\" -Dweblogic.management.server=localhost:7001\""
prps=makePropertiesObject(arg)
nmStart('serverName',props=prps)
2. Параметры, заданные в файле startup.properties.

После запуска блока из предыдущего пункта в директории {DOMAIN_HOME}/servers/serverName/data/nodemanager/
появится файл startup.properties примерно такого содержания
#Server startup properties
#Fri Jun 03 16:59:19 MSD 2011
Arguments=\ -Dweblogic.management.server\=localhost\:7001
Именно этот файл, а не  config.xml читает Nodemanager перед запуском сервера. Полный список возможных параметров можно посмотреть тут.

3.  Параметры запуска можно указать через web-консоль. Вообще говоря, этот способ - практически полное повторение пункта 2, но со своей логикой работы. При запуске/остановке серверов через web-консоль AdminServer обращается к NodeManager-у, который управляет ManagedServer-ом. Nodemanager в свою очередь выполняет метод nmStart('serverName')

На страничке Server Start вводим всё, что интересует


После сохранения и применения изменений  значения пишутся в файл config.xml и, если сервер уже запущен, генерируется файл startup.properties.Если сервер не запущен, файл не создаётся. Такое поведение похоже на вызов функции
nmGenBootStartupProps('serverName')
из консоли WLST, которая генерирует startup.properties-файл на основе config.xml и которая также требует подключения к работающему серверу.
Если сервер до этого ни разу не запускался, то необходимого для запуска файла startup.properties всё ещё нет. За его создание почему-то отвечает кнопка "Start" на странице управления серверами.
Такая логика работы web-консоли позволяет избежать ошибки (а может именно она её и вызывает), с которой сталкиваются новички, пытаясь стартовать свежесконфигурированный сервер из консоли WLST командой nmStart('serverName') до того, как будут заданы все необходимые параметры запуска.
4. Ещё один способ запустить сервер с нужными параметрами - использовать одновременно и скрипт startWeblogic, и файл startup.properties.
Если почитать документацию, можно найти вот такой текст:
You can use a start script to specify required startup properties and perform any other work you need performed at start up.
Для этого надо отредактировать конфиг NodeManager-а
${MW_HOME}/wlserver_10.3/common/nodemanager/nodemanager.properties
 StartScriptEnabled=true
и перезапустить его и сервер. После рестарта получаем процесс примерно такого вида:
ps -ef | grep weblogic.Server
/opt/oracle/java/latest/bin/java
-server
-Xms256m
-Xmx512m
-XX:MaxPermSize=256m

-Dweblogic.Name=serverName
-Djava.security.policy=/opt/oracle/middleware/wlserver_10.3/server/lib/weblogic.policy
-Dweblogic.ProductionModeEnabled=true
-Dweblogic.system.BootIdentityFile=/.../data/nodemanager/boot.properties
-Dweblogic.nodemanager.ServiceEnabled=true
-Dweblogic.security.SSL.ignoreHostnameVerification=true
-Dweblogic.ReverseDNSAllowed=false
-server
-Xms256m
-Xmx256m
-XX:MaxPermSize=128m

-Dplatform.home=/opt/oracle/middleware/wlserver_10.3
-Dwls.home=/opt/oracle/middleware/wlserver_10.3/server
-Dweblogic.home=/opt/oracle/middleware/wlserver_10.3/server
-Dweblogic.management.discover=false
-Dweblogic.management.server=http://...:7001
Первая выделенная группа - параметры JVM, заданные в скрипте startWeblogic.sh.
Вторая - параметры JVM, заданные в файле startup.properties. Параметры из этого файла всегда будут добавляться в конец строки запуска. Действующими параметрами будут только последние. Способ стоит пользоваться осторожно, так как для некоторых параметров JVM важен порядок следования, также важен порядок перечисления путей в переменной CLASSPATH .

Комментариев нет:

Отправить комментарий