我可以得到instlled应用程序的列表,但是如何使用Jython获取状态?如何使用wsadmin Jython脚本确定应用程序是否正在运行?
回答
我不认为有任何直接的方法来获取应用程序的运行状态,可以使用下面的代码
serverstatus = AdminControl.completeObjectName('type=Application,name='your_application_name',*')
print serverstatus
如果serverstatus
返回null,则应用程序没有运行得到的AdminControl对象,如果应用程序正在运行,则会打印应用程序的详细信息。
以下IBM文档应该有所帮助:
WAS信息中心:Querying the application state using wsadmin scripting
IBM技术:Listing enterprise application status using wsadmin script
总之,如果应用程序的应用程序服务器上运行,Application
MBean将被注册。为了确定应用程序是否正在运行,您可以查询这些MBean的存在。
这是我根据斯内汉的答案使用的。
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
============================
因此,我的Web控制台表示应用程序处于部分启动状态,但是当我使用wsadmin脚本时,它会返回其安装的所有AppServers,而不是实际显示NULL或空白返回。这是否应该发生? – Pred
如何运行此文件?我收到错误 NameError:名称'AdminApp'未定义 –
有一些在马蒂厄,科米尔的脚本需要更多的修改。
我们走吧。
它可以在任何行分隔符中工作。一般来说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()
- 1. 如何确定应用程序是否正在运行?
- 2. 如何确定应用程序是否正在使用GPU
- 3. 有没有一种方法可以确定是否在jython shell /脚本中使用conntype = NONE调用了wsadmin?
- 4. 如何确定我的python脚本是否正在运行?
- 5. 如何确定正在运行的Haskell脚本或应用程序的目录?
- 6. 如何确定JavaFX应用程序是否由WebStart运行?
- 7. 如何在运行时确定应用程序是否使用UINavigationController?
- 8. 安装.pkg:确定正在更新的应用程序是否正在运行?
- 9. 确定应用程序是否在远程系统上运行
- 10. wsadmin jython脚本退出代码到调用脚本
- 11. 如何确定应用程序是否是Web应用程序
- 12. VBS如何确定程序是否正在运行
- 13. 用Jython运行Flask应用程序
- 14. 如何确定我是否正在运行侧装应用程序或商店安装的应用程序?
- 15. 确定进程是否正在运行?
- 16. 确定脚本是否正在运行隐藏
- 17. 如何确定Grails应用程序是否正在测试?
- 18. 如何检查应用程序是否正在运行,否则运行它?
- 19. 如何确定应用程序正在使用的TLS版本?
- 20. 如何使用VB脚本检查进程是否在运行?
- 21. 确定应用程序是否在后台运行
- 22. 让应用程序确定它是否在Heroku上运行
- 23. 如何判断全屏应用程序是否正在运行?
- 24. 如何检测应用程序是否正在运行Cloud9?
- 25. 如何使用KeyEvent定位正在运行的应用程序?
- 26. 如何确定用户是第一次运行应用程序?
- 27. wsadmin - Jython脚本在未指定时拾取PWD
- 28. 如何确定哪些正在运行的应用程序使用.Net
- 29. 使用shell子进程来确定第二个脚本是否仍在运行
- 30. 我是否正确使用此脚本?
我也将扩大你的问题,看看有什么应用程序的状态为每个应用程序服务器。那么我们应该得到一些更有趣的答案。 – Pred