I can get a list of instlled applications but how do I get the status using Jython?
4 Answers
I dont think there is any direct method to get the application running status, You can get the object from the AdminControl using the following code
serverstatus = AdminControl.completeObjectName('type=Application,name='your_application_name',*')
print serverstatus
If serverstatus
returns null, then the application is not running, if the application is running then the details of the applications would be printed.

- 432
- 3
- 17
-
Can you add in other arguments like `server=WPS00` or anything like that? – FilBot3 Feb 12 '16 at 17:15
-
Answered my own question. You include in the search string `process=WPS00` and it'll look at specific AppServers. – FilBot3 Feb 12 '16 at 20:47
Here is what I use based on Snehan's answer.
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()
Sample output
============================
Status | Application
============================
Running | DefaultApplication
Running | IBMUTC
Stopped | some-ear
Running | another-ear
============================

- 2,185
- 1
- 21
- 32
-
So, my web console says the application is in a partial start, but when I use wsadmin scripting, it returns all the AppServers that its installed on, not actually showing a NULL, or blank return. Should that be happening? – FilBot3 Jan 14 '16 at 17:45
-
How do I run this file? I am getting error NameError: name 'AdminApp' is not defined – Zachary Loughridge Mar 21 '17 at 13:16
The following IBM documentation should help:
WAS InfoCenter: Querying the application state using wsadmin scripting
IBM Technote: Listing enterprise application status using wsadmin script
To summarize, if the application is running on an application server, an Application
MBean will be registered. In order to determine if the application is running, you can query for the presence of these MBeans.

- 7,206
- 4
- 36
- 63
There is some more modification required in Matthieu, Cormier's script.
Here we go.
It will work in any line separator. Generally AdminApp.list() will use "\" as the line seperator
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()

- 11
- 3