我可以得到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