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

问题描述 投票:0回答:4

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

websphere jython wsadmin
4个回答
14
投票

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

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

如果

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


7
投票

这是我根据 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
============================

4
投票

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

总而言之,如果应用程序在应用程序服务器上运行,则会注册一个

Application
MBean。为了确定应用程序是否正在运行,您可以查询这些 MBean 是否存在。


1
投票

Matthieu、Cormier 的剧本还需要一些修改。

我们开始吧。

它适用于任何行分隔符。一般AdminApp.list()会使用“\”作为行分隔符

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():
    Apps=AdminApp.list().split(java.lang.System.getProperty("line.separator"))

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

    # Print apps and their status
    for x in Apps:
        print "X value", x
        print getAppStatus(x) + ' | ' + x

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



appStatusInfo()
© www.soinside.com 2019 - 2024. All rights reserved.