Сервер WebSphere не работает: Jython WebSphere Scripting? - PullRequest
3 голосов
/ 16 июня 2011

Пожалуйста, найдите следующий код

runningServer1 = AdminControl.completeObjectName("type=Server,node=nodename,process=processname,*")
print "server running --->",runningServer1
if len(runningServer1) == 0:

    print "Error: Server not running...",process_name

Результат:

"Ошибка: сервер не работает ..."

хотя мой сервер работает, и я могу запустить приложение.А также переменная runningServer1 не печатается, почему я не могу получить объект для сервера?

Более подробная информация о моем вопросе, которую я разместил на форумах IBM ниже

https://www.ibm.com/developerworks/forums/thread.jspa?threadID=374216

1 Ответ

1 голос
/ 18 июня 2011

bkail находится на правильном пути.Вы должны убедиться, что строка поиска верна.Используйте:

print AdminControl.queryNames('type=Server,*')

в интерактивном сеансе wsadmin.sh, чтобы получить список всех запущенных серверов в вашей ячейке.Затем используйте:

'type=Server,name=JVM_NAME,*'

для строки поиска.Где JVM_NAME определяется по выходным данным только что запущенных queryNames.

Кроме того, я бы избегал AdminControl.completeObjectName.Я не уверен в последствиях, но этот фрагмент из документа заставляет меня думать, что он может не делать то, о чем вы думаете:

Используйте команду completeObjectName для создания строкового представления полногоЗначение ObjectName, основанное на фрагменте. Эта команда не связывается с сервером , чтобы найти соответствующее значение ObjectName.Если система находит несколько MBean-компонентов, соответствующих фрагменту, команда возвращает первый.

Вот как IBM делает это в WAS_ROOT / scriptLibraries / servers / V70 / AdminServerManagement.py (строки 814-815):

runningServer = AdminControl.queryNames("type=Server,node="+nodeName+",name="+serverName+",*")
if (len(runningServer) > 0 and AdminControl.getAttribute(runningServer, "state") == "STARTED"):
    ...

По моему опыту, AdminControl.queryNames вернет только работающих серверов.Таким образом, в зависимости от ваших потребностей достаточно просто проверить возвращаемое значение len (runningServer).Кроме того, в истинной моде IBM нет ничего в документах, которые перечисляют возможные возвращаемые значения AdminControl.getAttribute (runningServer, "state").Мне удалось найти только ссылки на «STARTED».

...