如何使用wsadmin Jython脚本确定应用程序是否正在运行?

时间:2011-11-18 16:48:10

标签: websphere jython wsadmin

我可以获得已安装应用程序的列表,但如何使用Jython获取状态?

4 个答案:

答案 0 :(得分:13)

我认为没有任何直接的方法来获取应用程序运行状态,您可以使用以下代码从AdminControl获取对象

serverstatus = AdminControl.completeObjectName('type=Application,name='your_application_name',*')
print serverstatus

如果serverstatus返回null,则应用程序未运行,如果应用程序正在运行,则将打印应用程序的详细信息。

答案 1 :(得分:5)

以下是我根据Snehan的回答使用的内容。

import string

def getAppStatus(appName):
    # If objectName is blank, then the application is not running.
    objectName = AdminControl.completeObjectName('type=Application,name=' + appName + ',*')
    if objectName == "":
        appStatus = 'Stopped'
    else:
        appStatus = 'Running'
    return appStatus

def appStatusInfo():
    appsString = AdminApp.list()
    appList = string.split(appsString, '\r\n')

    print '============================'
    print ' Status |    Application   '
    print '============================'

    # Print apps and their status
    for x in appList:
        print getAppStatus(x) + ' | ' + x

    print '============================'



appStatusInfo()

示例输出

============================
 Status |    Application
============================
Running | DefaultApplication
Running | IBMUTC
Stopped | some-ear
Running | another-ear
============================

答案 2 :(得分:4)

以下IBM文档应该有所帮助:

总而言之,如果应用程序在应用程序服务器上运行,则将注册Application MBean。为了确定应用程序是否正在运行,您可以查询是否存在这些MBean。

答案 3 :(得分:1)

在Matthieu,Cormier的剧本中还需要进行一些修改。

我们走了。

它适用于任何行分隔符。通常 AdminApp.list()将使用“\”作为行分隔符

b = (Math.pow(1+r, n)(r*a - p) + p)/r;