Я написал сценарий для автоматизации процесса запуска, остановки и перезапуска WAS7 из командной строки. На одном из наших промежуточных серверов ничего не запускается автоматически, поэтому мне нужно запустить все: диспетчер развертывания, агент узла, сервер приложений и веб-сервер. Написанный мной сценарий работает очень хорошо.
Мой коллега порекомендовал мне иначе структурировать свои команды. Мне интересно, есть ли для этого веская причина.
Во-первых, мои переменные:
WAS_HOME="/opt/IBM/WebSphere/AppServer"
WAS_PROFILE_NAME="AppSrv01"
WAS_APP_SERVER="server1"
WAS_WEB_SERVER="webserver1"
Как я получил start
команды:
"${WAS_HOME}/bin/startManager.sh"
"${WAS_HOME}/bin/startNode.sh" -profileName $WAS_PROFILE_NAME
"${WAS_HOME}/bin/startServer.sh" -profileName $WAS_PROFILE_NAME $WAS_APP_SERVER
"${WAS_HOME}/bin/startServer.sh" -profileName $WAS_PROFILE_NAME $WAS_WEB_SERVER
Мне сказали, что я должен сделать это так:
WAS_DMGR="Dmgr01" # Added variable
"${WAS_HOME}/profiles/${WAS_PROFILE_NAME}/bin/startNode.sh"
"${WAS_HOME}/profiles/${WAS_DMGR}/bin/startManager.sh"
"${WAS_HOME}/profiles/${WAS_PROFILE_NAME}/bin/startServer.sh" $WAS_APP_SERVER
"${WAS_HOME}/profiles/${WAS_PROFILE_NAME}/bin/startServer.sh" $WAS_WEB_SERVER
Чем второй способ запустить все для WebSphere лучше или правильнее первого, оригинального?
Это зависит от установленного профиля по умолчанию, поскольку вы запускаете два профиля на одном компьютере. Похоже, что по умолчанию используется Dmgr01, поэтому первый вызов startManager работает нормально. Сценарии сервера устанавливают имя профиля, поэтому они также работают нормально.
Я думаю, что первый способ так же хорош, как и второй.
Если вы посмотрите на код для начальных * -скриптов в Profile \ bin, вы обнаружите, что они в основном просто устанавливают некоторую переменную, а затем вызывают скрипты AppServer \ bin.