bkail は正しい軌道に乗っています。検索文字列が正しいことを確認する必要があります。使用する:
print AdminControl.queryNames('type=Server,*')
対話型の wsadmin.sh セッションで、セル内で実行中のすべてのサーバーをリストします。次に使用します。
'type=Server,name=JVM_NAME,*'
あなたの検索文字列のために。JVM_NAME は、実行した queryNames からの出力から決定されます。
また、AdminControl.completeObjectName は避けたいと思います。その意味はわかりませんが、ドキュメントからのこのスニペットは、あなたが思っていることをしないかもしれないと私に思わせます:
フラグメントに基づく完全な ObjectName 値の文字列表現を作成するには、completeObjectName コマンドを使用します。このコマンドは、一致する ObjectName 値を見つけるためにサーバーと通信しません。フラグメントに一致する MBean が複数見つかった場合、コマンドは最初の 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」への参照しか見つかりませんでした。