我可以获得已安装应用程序的列表,但如何使用Jython获取状态?
答案 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文档应该有所帮助:
WAS信息中心:Querying the application state using wsadmin scripting
IBM Technote:Listing enterprise application status using wsadmin script
总而言之,如果应用程序在应用程序服务器上运行,则将注册Application
MBean。为了确定应用程序是否正在运行,您可以查询是否存在这些MBean。
答案 3 :(得分:1)
在Matthieu,Cormier的剧本中还需要进行一些修改。
我们走了。
它适用于任何行分隔符。通常 AdminApp.list()将使用“\”作为行分隔符
b = (Math.pow(1+r, n)(r*a - p) + p)/r;