Как определить, запущено ли приложение с использованием скрипта wsadmin Jython? - PullRequest
6 голосов
/ 18 ноября 2011

Я могу получить список установленных приложений, но как мне получить статус с помощью Jython?

Ответы [ 4 ]

13 голосов
/ 19 ноября 2011

Я не думаю, что есть какой-либо прямой метод для получения статуса работающего приложения. Вы можете получить объект из AdminControl, используя следующий код

serverstatus = AdminControl.completeObjectName('type=Application,name='your_application_name',*')
print serverstatus

Если serverstatus возвращает ноль, то приложениене работает, если приложение запущено, то информация о приложениях будет напечатана.

5 голосов
/ 08 января 2014

Вот то, что я использую на основе ответа Снехана.

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
============================
4 голосов
/ 18 ноября 2011

Должна помочь следующая документация IBM:

Подводя итог, если приложение выполняется на сервере приложений, Application MBean будет зарегистрирован.Чтобы определить, запущено ли приложение, вы можете запросить наличие этих MBeans.

1 голос
/ 26 ноября 2015

В Matthieu, сценарии Cormier, требуется еще кое-что изменить.

Вот и мы.

Будет работать в любом разделителе строк. Обычно 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()
...