Как увеличить размер "кучи" для ws_ant.sh при развертывании на WebSphere 8.5 (64-разрядный Linux)

TL; DR - Как я даю ws_ant.sh и/или <wsInstallApp> задача больше "кучи" во времени выполнения?

Я пытаюсь развернуть относительно большое (~160-МБ) файл EAR к WebSphere 8.5, работающему на 64-разрядной платформе Linux.

Вот задача, которую я имею в моем build.xml:

<wsInstallApp
    ear="/my/ear/file/location/New.EAR"
    properties="jvm.properties"
    options="-appname myNewEarApp -update -deployws"
    host="localhost"
    conntype="SOAP"
    user="the_username"
    password="not_telling_you"
    failonerror="true" />

Выполнение его с ws_ant.sh упакованный с БЫЛИ результаты в OutOfMemoryError и дампы "кучи".

Так, я должен увеличить "кучу", доступную задаче (или сам ws_ant?) во времени выполнения, но я не могу выяснить надлежащее место, чтобы сделать так. Я пытался изменить wsadmin.sh, и в то время как это имеет эффект, если я выполняю свое развертывание как сценарий Jython с wsadmin.sh непосредственно, это, кажется, не оказывает влияния вообще на выполнение <wsInstallApp> из скрипта Ant.

Согласно документации IBM wsInstallApp:

Атрибут свойств является дополнительным, и он содержит файл свойств Java, содержащий атрибуты для установки в свойствах JVM System

В моем jvm.properties файл, я попробовал:

[user@localhost]$ cat jvm.properties
-Xms4096m
-Xmx4096m

Это не имело никакого эффекта. Выполнение ws_ant.sh с -v подробный флаг показал, что, где-нибудь, значение-Xmx установлено как -Xmx256m. Я попробовал несколько других опрометчивых комбинаций и форматов, но ничто, кажется, не работает.

Я также пытался добавить аргументы на ws_ant.sh вызов:

[user@localhost]$ ws_ant.sh -Xms4096m -Xmx4096m -v -f build.xml was.deploy

... но это также, кажется, ничего не делает.

Что я делаю неправильно? Я признаю, что, если нажато, мог бы, вероятно, отвечать своим требованиям путем перезаписи использования развертывания wsadmin.sh и сценарий Jython, но я пытаюсь усилить некоторые обширные сценарии Муравья из другого приложения EAR.

Альтернативы? Я также распознаю, что мог использовать <wsadmin> Задача Ant для вызова некоторых сценариев Jython из Муравья - я еще не попробовал это - но снова, у нас уже есть некоторые обширные сценарии иначе. Каковы относительные преимущества и недостатки одного пути по сравнению с другим? (т.е. выполнение wsadmin.shСценарий/Jython через <[ssh]exec> или <wsadmin> по сравнению с <wsInstallApp> [и его "ws _____" одноуровневые элементы]).

1
задан 9 April 2015 в 18:20
3 ответа

Попробуйте атрибут jvmMaxMemory

<wsInstallApp
    ear="/my/ear/file/location/New.EAR"
    jvmMaxMemory="1024M"
    options="-appname myNewEarApp -update -deployws"
    host="localhost"
    conntype="SOAP"
    user="the_username"
    password="not_telling_you"
    failonerror="true" />
0
ответ дан 4 December 2019 в 07:53

Для ws_ant.sh вы должны использовать JVM_EXTRA_CMD_ARGS env.

export JVM_EXTRA_CMD_ARGS="-Xms1G -Xmx2G"
sh $WEBSPHERE_HOME/bin/ws_ant.sh -f was-build.xml

Чтобы доказать это, поменяйте минимальный и максимальный размеры "-Xms2G -Xmx1G", и вы получите ошибку:

VMJ9GC019E -Xms too large for -Xmx
JVMJ9VM015W Initialization error for library j9gc26(2): Failed to initialize
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
0
ответ дан 4 December 2019 в 07:53

Мы используем Maven для развертывания, и я могу подтвердить, добавление jvmMaxMemory в wsInstallApp помогло. Мне пришлось форкнуть оригинальный плагин и добавить для него поддержку.

0
ответ дан 4 December 2019 в 07:53

Теги

Похожие вопросы