2014-07-25 69 views
2

這是我的第一個問題,我認爲這不是最後一個。wsadmin獲取停止的應用程序的服務器名稱

使用wsadmin啓動應用程序我需要服務器的名稱。

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

我知道如何獲取名稱服務器,當應用程序啓動,但不是當停止。

請幫我。

最好的問候 讓 - 克里斯托夫

+0

是否使用WAS ND(在小區內的多個服務器,可能與集羣)或剛BASE/EXPRESS?對於BASE/EXPRESS,您可以簡單地跳過查詢中的'process'屬性。如果它是ND,那麼答案不會那麼簡單。 –

+0

我在單元中使用WAS ND與多個服務器,但沒有集羣。謝謝 –

回答

0

我想我已經找到了解決辦法,但我不知道它的作品與DMGR(我在度假,我已經測試了8.5.5試用版)。我已經理解AdminControl可以與活動的應用程序對象一起工作,因此我的第一個測試無法啓動我的應用程序。

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) 

感謝您的幫助 最好的問候 讓 - 克里斯托夫

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

也許我不明白,你搜索哪個服務器停止。我嘗試啓動一個應用程序,因爲我需要找出服務器的名稱,服務器已經啓動。因此,這段代碼聽起來很棒,我會測試它。 –

相關問題