WLST将状态(' ms1')的输出捕获到变量

时间:2014-04-26 16:25:16

标签: weblogic weblogic-10.x wlst

我需要将下面的输出捕获到变量中。 我知道我们可以访问serverRuntime或domainRuntime()树并获取状态。但需要让以下工作。

wls:/owb/serverConfig> state('Server1')
Current state of 'Server1' : RUNNING

我尝试了两种方法:

wls:/owb/serverConfig> print state('Server1')
Current state of 'Server1' : RUNNING
None

wls:/owb/serverConfig> x=state('Server1')
Current state of 'Server1' : RUNNING

wls:/owb/serverConfig> print x
None

3 个答案:

答案 0 :(得分:2)

您必须使用服务器运行时mbean的getState()方法。 您可以通过导航到wlst运行时树或使用查找方法来获取服务器运行时mbean。

示例:

domainRuntime()
slrBean = cmo.lookupServerLifeCycleRuntime('Server1')
status = slrBean.getState()
print 'Status of Managed Server is '+status

另请参阅WLST官方文档中的Getting Runtime Information

答案 1 :(得分:1)

王殿元和我2011年提出了同样的问题。 以下是解决问题的步骤。 1.使用redirect,stopRedirect命令捕获state命令的输出 2.在搜索功能中使用Python正则表达式来提取所需的服务器输出。

代码段在这里

            fileName='/tmp/myserver_state.txt'
            redirect(fileName)
            state(server_nm,'Server')
            stopRedirect()
            f = open(fileName)
            try:
                    for line in f.readlines():
                            if re.search('Current state',line):
                                    status[server_nm]=line
            except:
                    continue

现在,您可以在此块之后应用所需的逻辑。

干杯!! HTH

答案 2 :(得分:0)

这是我正在使用的,并且像魅力一样工作

    cd("/ServerRuntimes/ms1")
    state=cmo.getState()
    print state