weblogic每分钟检查服务器状态

时间:2012-12-24 06:47:06

标签: java weblogic cpu

当我使用以下命令时

java weblogic.Admin -url %URL% -username %WLS_USER% -password %WLS_PW% GET -pretty -mbean "%DOMAIN_NAME%:Name=%ADMINSERVER_SERVERNAME%,Type=Server" -property ListenPort

每分钟检查服务器的状态,只需运行此命令,CPU使用率就高达70%,我的应用程序要求我每分钟使用此命令检查状态,这是不可取的。

如何使用命令行util以最小CPU /时间每分钟检查一次weblogic服务器实例的运行状况,以便我可以从脚本调用。

1 个答案:

答案 0 :(得分:3)

以下WLST脚本可用于检查每个服务器的状态

#!/usr/bin/python
#
#   Script to return the status of each of the servers
#

class StatusResult:
    def __init__(self,serverName,serverStatus):
        self.name = serverName
        self.status = serverStatus

connect('username','password','t3://servername')
redirect('/dev/null','false')
nmStatus = 'Stopped'
if nm() == 1:
    nmStatus = 'RUNNING'
statuses = [ StatusResult('NodeManager',nmStatus) ]
# Get the list of managed servers from AdminServer
for server in ['AdminServer', 'soa_server1', 'osb_server1', 'bam_server1']:
    statuses.append(StatusResult(server,nmServerStatus(server)))
stopRedirect()
for result in statuses:
    print result.name + ": " + result.status
disconnect()

调用脚本

. ${WL_HOME}/server/bin/setWLSEnv.sh
${MW_HOME}/oracle_common/common/bin/wlst.sh statusscript

或者,您可以使用与服务器端口上的http检查一样简单的内容来查看它是否响应。这将使服务器上的负载最小化。例如,您可以使用nagios插件check_http来检查特定服务器的状态。

check_http -I serveraddr -p serverport -e 404
check_http -I serveraddr -p serversslport  --ssl -e 404