2014-07-25 2 views
2

이것이 내 첫 번째 질문이며 이것이 마지막이 아닐 것이라고 생각합니다.wsadmin 중지 된 응용 프로그램의 서버 이름을 얻음

wsadmin을 사용하여 응용 프로그램을 시작하려면 서버 이름이 필요합니다.

appManager = AdinControl.completeObjectName('type=ApplicationManager,process='+serverName+',*') 
    AdminControl.invoke(appManager,'startApplication',myAppName) 

응용 프로그램이 시작될 때 이름 서버를 얻는 방법을 알고 있지만 언제 중지되는지는 알지 못합니다.

제발 도와주세요.

안부 장 - 크리스토프는

+0

당신이 사용하고 당신의 도움에 대한

app = raw_input("Donner le nom de l'application a demarree: ") print "recuperation du nom de server" mods = AdminApp.listModules(app,'-server') (name, module, server) = mods.split('#') serverName = server.split('=') [ -1 ] #quite ugly, If you have best solution, I take appManager= AdminControl.completeObjectName('type=ApplicationManager,process='+serverName+',*') print "Demarrage d'une application :" AdminControl.invoke(appManager,'startApplication',app) 

덕분에 WAS ND하거나 WAS BASE/EXPRESS (여러 가능성 클러스터와 셀의 서버에)? BASE/EXPRESS의 경우 쿼리에서 'process'속성을 건너 뛸 수 있습니다. 그것이 ND라면, 그 대답은 그다지 사소하지 않을 것입니다. –

+0

셀에 여러 서버가있는 WAS ND를 사용하지만 클러스터링은 사용하지 않습니다. 감사합니다 –

답변

0

은 내가 해결책을 찾기했습니다 있다고 생각하지만, 나는 DMGR과의 작업이있는 경우 (I 휴가 해요, 제가 테스트 한 8.5.5 평가판 WAS) 모른다. AdminControl이 활성 응용 프로그램 객체와 함께 작동한다는 것을 이해했기 때문에 첫 번째 테스트에서 내 응용 프로그램을 시작할 수 없습니다. 안부 장 - 크리스토프

1

코드 아래 고려하십시오. 이 방법은 클러스터를 사용하고 모든 서버를 검색하지만 상황에 맞게 수정할 수 있습니다. 첫 번째 블록을 수정하여 하나의 앱 내에서만 서버를 검색 할 수 있습니다.

# Get a list of all valid servers 
cell=AdminConfig.list('Cell') 
cellName=AdminConfig.showAttribute(cell, 'name') 
clusterID=AdminConfig.getid('/ServerCluster:<My Cluster>/') 
clusterList=AdminConfig.list('ClusterMember', clusterID) 

servers=clusterList.split("\n") 

# For each server check if its running using completeObjectName 
# If it returns null its a valid server name, the server just isn't running 
# If it returns info its running. 
for serverID in servers: 
    serverName=AdminConfig.showAttribute(serverID, 'memberName') 
    nodeName=AdminConfig.showAttribute(serverID, 'nodeName') 
    aServer=AdminControl.completeObjectName('cell=' + cellName + ',node=' + nodeName + ',name=' + serverName + ',type=Server,*') 
    if (aServer != ""): 
     aState=AdminControl.getAttribute(aServer, 'state') 
    else: 
     aState="STOPPED" 
     # Since this server is not running write code here to start it. 
    print "Server", serverName, "is in a", aSt 
+0

고마워, 나는 내 상황에 적응하고있다. –

+0

아마도 내가 이해하지 못하는 경우, 어떤 서버가 중지되었는지 검색합니다. 나는 서버의 이름을 알아야하기 때문에 응용 프로그램을 시작하려고합니다. 서버는 이미 시작되었습니다. 따라서이 코드는 훌륭하게 들리므로 테스트 해 보겠습니다. –

관련 문제