如何从wsadmin控制台获取WebSphere 7.0的当前应用程序状态

时间:2012-03-28 15:13:21

标签: deployment websphere jython wsadmin

人,

如何获取部署在websphere上的应用程序的当前状态(例如已启动/已停止)?我知道,我可以使用AdminControl.completeObjectName('type=Application,name=myApplication,*') 但是如果我刚刚调用了启动,那么很可能以下命令将不返回任何内容,因为应用程序尚未处于运行状态。同样的方式,当我刚刚调用stop时,我想显示该应用程序实际上已停止,以便在应用程序仍在运行时我不会更改任何内容。我有什么想法可以做到这一点?感谢。

2 个答案:

答案 0 :(得分:0)

就我而言,我通过这种方式在websphere 6.1中获得应用程序状态:

#--------------------------------------------------------------
# get app object name
#--------------------------------------------------------------

appObjectNames = AdminControl.queryNames('type=Application,cell=' + cellName + 
    ',node=' + nodeName + ',process=' + serverName + ',name=' + appName + ',*')

lineSeparator = java.lang.System.getProperty('line.separator')
appObjectName = appObjectNames.split(lineSeparator)[0]
appObjectName = appObjectName.strip()

#--------------------------------------------------------------
# get application status
#--------------------------------------------------------------

if len(appObjectName) == 0:
    tprint(prefix + 'application ' + appName + ' is stopped')
else:        
    tprint(prefix + 'application ' + appName + ' is started')

我想这也适用于WebSphere 7.0。

答案 1 :(得分:0)

您可以尝试这样做。这有点工作,但这是可能的。

  1. 使用应用程序名称获取部署目标。由于您提到了多个节点,我猜测部署目标将成为一个集群。
  2. 使用群集查找群集的成员,即服务器。
  3. 使用服务器名称检查每台服务器的状态。
  4. 如果启动了该群集的所有服务器,则启动该应用程序。如果该群集的所有服务器都已停止,则应用程序将停止。如果某些已启动且某些已停止,则应用程序将部分启动。

    希望有所帮助。