Пользовательские аргументы для установки в Weblogic JVM - PullRequest
11 голосов
/ 17 ноября 2011

Мне нужно настраиваемое свойство для каждой JVM-сервера в Weblogic.Каков лучший подход к этому?

Я знаю, что мы можем указать следующие аргументы:

  1. На панели «Структура домена» разверните узел «Серверы».
  2. Нажмите на имя сервера, который вы хотите настроить.
  3. На правой панели щелкните Запуск сервера.
  4. Выберите Lock & Edit.
  5. В текстовом поле Аргументы укажите параметры JVM.После ввода параметров нажмите «Сохранить».Затем нажмите Активировать изменения.
  6. Перезагрузите сервер, чтобы использовать новые настройки.

У меня вопрос, как именно определяется аргумент?Как использовать этот аргумент внутри приложения, которое будет развернуто внутри этой JVM.

Редактировать

Если я укажу, -DMyArg=MyValue и в коде, value=System.getproperty("MyValue");это должно работать, верно?

Ответы [ 4 ]

9 голосов
/ 17 ноября 2011

Редактировать: если я укажу "-DMyArg = MyValue" и в коде, значение = System.getProperty ( "MyValue"); это должно работать, верно?

Небольшая ошибка, вы должны использовать

value=System.getProperty("MyArg");

Это, однако, работает только с включенным NodeManager. Если это не так, я должен установить его в startWeblogic.cmd как одну из Java_Options

Еще лучше, если setDomainEnv.cmd содержит строки для

set EXTRA_JAVA_PROPERTIES=...
1 голос
/ 21 октября 2015

Под каталогом bin редактировать setDomainEnv.sh найдите следующую строку:

Если USER_MEM_ARGS установлена ​​переменная окружения, используйте ее для переопределения ALL MEM_ARGS добавьте строки ниже и измените значения соответственно

Для Admin Server

`if [ "${SERVER_NAME}" = "AdminServer" ] ; then
USER_MEM_ARGS="-Xms256m -Xmx256m -XX:MaxPermSize=256m"
MEM_ARGS="${USER_MEM_ARGS}"
export MEM_ARGS
fi`

Для управляемого сервера

`if [ "${SERVER_NAME}" != "AdminServer" ] ; then
USER_MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m"
MEM_ARGS="${USER_MEM_ARGS}"
export MEM_ARGS
fi`
0 голосов
/ 11 ноября 2013

Я обычно создаю простые сценарии вызова для каждого управляемого сервера в DOMAIN_HOME, которые, в свою очередь, вызывают общие стартовые сценарии в каталоге / bin - подобно тому, который WebLogic автоматически создает для Admin Server. Я знаю, что вы можете переопределить аргументы памяти таким образом, и я почти уверен, что вы можете изменить JVM.

Вот пример протестированного скрипта для Windows:

cd bin
SET USER_MEM_ARGS=-Xms512m -Xmx512m
startManagedWebLogic.cmd new_ManagedServer_1 localhost:7001

что, я думаю, в UNIX было бы примерно так (извините, я не знаю много о скриптах bash):

cd bin
export USER_MEM_ARGS="-Xms512m -Xmx512m"
./startManagedWebLogic.sh new_ManagedServer_1 localhost:7001

Я думаю, что для изменения JVM это будет что-то вроде:

export JAVA_VENDOR="Oracle"
export USER_MEM_ARGS="-Xms512m –Xmx1g"
./startWebLogic.sh

Было бы интересно услышать чей-либо отзыв об этом. Надеюсь, это кому-нибудь поможет. , .

0 голосов
/ 28 сентября 2012

Если вам необходимо установить свойство custom для каждой JVM-сервера в weblogic ", то использования startWeblogic.cmd или setDomainEnv.cmd будет недостаточно, поскольку для всех будет установлено одинаковое значениеваших серверов.

Одна вещь, которую вы можете сделать, если NodeManager не включен, - вручную отредактировать файл config.xml и добавить / отредактировать элемент <arguments> в элементе <server-start> для каждого сервера.

Но - это не рекомендуется (см. Здесь: http://docs.oracle.com/cd/E23943_01/web.1111/e13716/config_files.htm). Намного лучше полагаться на NodeManger и использовать процедуру, которую вы описали.

Кроме того, ответ выше value=System.getProperty("MyArg");правильный.

...