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».