How do I determine if an application is running using wsadmin Jython script?

后端 未结 4 1062
小鲜肉
小鲜肉 2020-12-15 12:32

I can get a list of instlled applications but how do I get the status using Jython?

相关标签:
4条回答
  • 2020-12-15 13:02

    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()
    
    0 讨论(0)
  • 2020-12-15 13:10

    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
    ============================
    
    0 讨论(0)
  • 2020-12-15 13:10

    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.

    0 讨论(0)
  • 2020-12-15 13:17

    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.

    0 讨论(0)
提交回复
热议问题