wsadmin获取已停止的应用程序的服务器名称

时间:2014-07-25 18:21:49

标签: websphere jython wsadmin

这是我的第一个问题,我认为这不是最后一个问题。

使用wsadmin启动应用程序我需要服务器的名称。

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

我知道如何在应用程序启动时获取名称服务器,但不知道何时停止。

你能帮帮我吗?

祝你好运 让克里斯托夫

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我认为我找到了一个解决方案,但我不知道它是否适用于dmgr(我度假,我已经使用WAS 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)

感谢您的帮助 最好的祝福 让克里斯托夫