Параметр Weblogic 12c PermSize при использовании NodeManager

У нас есть Windows Server 2012 64bit + Weblogic 12c. AdminServer требует более высокого PermSize при использовании с 64-битной ОС, поэтому нам нужно изменить "setDomainEnv.cmd" (как описано в других вопросах здесь по stackru).

При запуске AdminServer с помощью обычного сценария "startWeblogic.cmd" он использует параметры в "setDomainEnv.cmd", которые успешно устанавливают PermSize и т. Д., Но при использовании команды NodeManager "startServer()" этого не происходит.

Я прочитал кое-что в документации о том, что можно контролировать параметры, которые загружаются при запуске управляемого сервера (с помощью NodeManager), но я не нашел правильного способа сделать это.

Я надеюсь, что мы сможем добиться согласованного поведения при запуске управляемого сервера (и AdminServer) через NodeManager или вручную.

Есть идеи?

ОБНОВИТЬ:

Я проверил, что происходит при запуске управляемого сервера и (!), В сравнении с тем, что происходит при запуске AdminServer. Результат: процесс AdminServer (он запускает экземпляр 'javaw.exe' в отличие от экземпляра 'java.exe' для управляемого сервера) никогда не получает переданные ЛЮБЫЕ параметры, установленные в сценарии setDomainEnv.cmd... он в основном полон внутреннего Oracle параметры.

Для меня все это выглядит совершенно запутанным и противоречивым. В дополнение к этому я обнаружил проблему, о которой сообщает Oracle, которая мистическим образом говорит о настройке переменных среды при работе в 64-битной ОС (см. Заголовок "Сбой при распространении ZIP разработчика в Windows 64-bit и Linux 64-bit"):

https://docs.oracle.com/cd/E24329_01/doc.1211/e26593/issues.htm

У меня есть идея, относится ли это к моей версии или нет, поскольку в загруженной мной версии не указано "версия для разработчиков", в основном это была основная загрузка weblogic для последней версии.

Вопрос, который мне приходит в голову, заключается в следующем: каков ожидаемый способ запуска AdminServer, если не используется "startServer"? Есть ли ошибка, о которой никто не заботится, так как она обычно делается по-другому? Я действительно разочарован тем, как запутывается эта довольно простая тема, когда начинаешь читать документацию Oracle: она просто ничего об этом не говорит.

Командная строка, которая запускается при запуске AdminServer с помощью команды "startServer()":

C:\PROGRA~1\Java\JDK17~1.0_6\jre\bin\javaw.exe -classpath "C:\PROGRA~1\Java\JDK17~1.0_6\jre\lib\rt.jar;C:\PROGRA~1\Java\JDK17~1.0_6\jre\lib\i18n.jar;C:\PROGRA~1\Java\JDK17~1.0_6\lib\tools.jar;D:\Oracle\Middleware\wlserver\server\lib\weblogic_sp.jar;D:\Oracle\Middleware\wlserver\server\lib\weblogic.jar;D:\Oracle\Middleware\oracle_common\modules\net.sf.antcontrib_1.1.0.0_1-0b3\lib\ant-contrib.jar;D:\Oracle\Middleware\wlserver\modules\features\oracle.wls.common.nodemanager_2.0.0.0.jar;D:\Oracle\Middleware\oracle_common\modules\com.oracle.cie.config-wls-online_8.1.0.0.jar;D:\Oracle\Middleware\wlserver\common\derby\lib\derbyclient.jar;D:\Oracle\Middleware\wlserver\common\derby\lib\derby.jar;D:\Oracle\Middleware\wlserver\server\lib\xqrl.jar" "-Djava.runtime.name=Java(TM) SE Runtime Environment" -Dpython.cachedir=C:\Users\ADMINI~1\AppData\Local\Temp\2\wlstTempAdministrator -Djava.protocol.handler.pkgs=weblogic.utils|weblogic.utils|weblogic.utils -Djava.vm.version=24.65-b04 "-Djava.vm.vendor=Oracle Corporation" -Djava.vendor.url=http://java.oracle.com/ -Dpath.separator=; "-Djava.vm.name=Java HotSpot(TM) 64-Bit Server VM" -Dweblogic.RootDirectory=D:\Oracle\Middleware\user_projects\domains\test1234\. "-Djava.vm.specification.name=Java Virtual Machine Specification" -Djava.runtime.version=1.7.0_67-b01 -Djavax.rmi.CORBA.UtilClass=weblogic.iiop.UtilDelegateImpl -Djava.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment -Djava.endorsed.dirs=C:\PROGRA~1\Java\JDK17~1.0_6\jre\lib\endorsed -Dos.arch=amd64 -Djava.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\2\ -Dline.separator=
 "-Djava.vm.specification.vendor=Oracle Corporation" -Djava.naming.factory.url.pkgs=weblogic.jndi.factories:weblogic.corba.j2ee.naming.url "-Dos.name=Windows Server 2012 R2" -Dprod.props.file=D:\Oracle\Middleware\wlserver\.product.properties -Dorg.omg.CORBA.ORBSingletonClass=weblogic.corba.orb.ORB -Djava.library.path=C:\PROGRA~1\Java\JDK17~1.0_6\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;;D:\Oracle\Middleware\wlserver\server\native\win\x64;D:\Oracle\Middleware\wlserver\server\bin;D:\Oracle\Middleware\oracle_common\modules\org.apache.ant_1.9.2\bin;C:\PROGRA~1\Java\JDK17~1.0_6\jre\bin;C:\PROGRA~1\Java\JDK17~1.0_6\bin;D:\Oracle\product\12.1.0\dbhome_1\BIN;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WINDOW~1\v1.0\;C:\PROGRA~2\VISUAL~1\bin;C:\PROGRA~1\doxygen\bin;C:\PROGRA~1\TORTOI~1\bin;C:\PROGRA~2\WINDOW~4\8.0\WINDOW~1\;C:\PROGRA~1\MICROS~1\110\Tools\Binn\;D:\Oracle\Middleware\wlserver\server\native\win\x64\oci920_8;. "-Djava.specification.name=Java Platform API Specification" -Djava.class.version=51.0 -Dorg.omg.CORBA.ORBClass=weblogic.corba.orb.ORB -Dos.version=6.3 -Djavax.rmi.CORBA.PortableRemoteObjectClass=weblogic.iiop.PortableRemoteObjectDelegateImpl -Djava.awt.printerjob=sun.awt.windows.WPrinterJob -Djava.specification.version=1.7 -Djava.class.path=C:\PROGRA~1\Java\JDK17~1.0_6\lib\tools.jar;D:\Oracle\Middleware\wlserver\server\lib\weblogic_sp.jar;D:\Oracle\Middleware\wlserver\server\lib\weblogic.jar;D:\Oracle\Middleware\oracle_common\modules\net.sf.antcontrib_1.1.0.0_1-0b3\lib\ant-contrib.jar;D:\Oracle\Middleware\wlserver\modules\features\oracle.wls.common.nodemanager_2.0.0.0.jar;D:\Oracle\Middleware\oracle_common\modules\com.oracle.cie.config-wls-online_8.1.0.0.jar;D:\Oracle\Middleware\wlserver\common\derby\lib\derbyclient.jar;D:\Oracle\Middleware\wlserver\common\derby\lib\derby.jar;D:\Oracle\Middleware\wlserver\server\lib\xqrl.jar -Djava.vm.specification.version=1.7 -Dweblogic.management.GenerateDefaultConfig=false -Djava.home=C:\PROGRA~1\Java\JDK17~1.0_6\jre "-Djava.specification.vendor=Oracle Corporation" -Dawt.toolkit=sun.awt.windows.WToolkit "-Djava.vm.info=mixed mode" -Djava.version=1.7.0_67 -Djava.ext.dirs=C:\PROGRA~1\Java\JDK17~1.0_6\jre\lib\ext;C:\Windows\Sun\Java\lib\ext "-Djava.vendor=Oracle Corporation" -Djava.vendor.url.bug=http://bugreport.sun.com/bugreport/ -Dweblogic.store.DisableDiskScheduler=true -Dpython.verbose=warning weblogic.Server

ОБНОВЛЕНИЕ 2:

Запустите AdminServer через менеджер узлов (nmStart('AdminServer')), создайте обычный процесс "java.exe" и запустите AdminServer с правильными настройками памяти. Но это еще более запутанно: почему "startServer()" создает отдельный процесс (javaw.exe) с совершенно другими настройками? Почему мои настройки теперь совершенно другие для AdminServer? Каков "правильный" способ запуска AdminServer (разработка / производство?). Два больших пальца вниз на этой среде.

ОБНОВЛЕНИЕ 3:

После повторения дальнейших тестов решение заставить "startServer()" работать в основном так: вообще не беспокоиться о настройках менеджера узлов, отредактируйте скрипт "startWeblogic" напрямую, добавив в него дополнительные параметры java (как обычно добавление -D начальных параметров). Причина всего этого заключается в том, что глобальные настройки (используемые менеджером узлов) полностью игнорируются, см. Мой вставленный вывод командной строки.

1 ответ

Решение

Проверить nodemanager.properties файл в вашей установке Oracle (например, /opt/ora/mw/wlserver_10.3/common/nodemanager/nodemanager.properties) и убедитесь, что установлены следующие параметры:

StartScriptName=startManagedWebLogic.sh
StartScriptEnabled=true

поэтому менеджер узлов запускает ваши серверы с соответствующими сценариями. Вы также можете установить специфичные для сервера начальные атрибуты через консоль администратора - перейдите по ссылке:

Servers -> Server Name -> Server Start tab -> Arguments

Вы можете заполнить специфичные для сервера аргументы JVM, например: -XX:MaxPermSize=4096m в этом поле, которое будет использоваться менеджером узлов. Это может быть лучше / проще, чем жесткое программирование в сценарии setDomainEnv.

ОБНОВИТЬ


Попытка выдачи nmStart() команда, а не startServer() Команда для AdminServer.

startServer позволяет запустить сервер БЕЗ менеджера узлов. Он использует javaw.exe, чтобы эффективно справиться с процессом

nmStart позволяет запустить сервер с помощью nodemanager - поэтому вы получаете правильные настройки памяти. Поскольку процесс запускается с помощью службы, он более или менее автоматически становится фоновым, поэтому вы видите обычный файл java.exe.

Другие вопросы по тегам