- 論壇徽章:
- 33
|
本帖最后由 Shell_HAT 于 2014-07-19 08:21 編輯
經(jīng)?吹接腥送ㄟ^檢查 PID 或者端口號是否存在來判斷 WebLogic 實(shí)例是否正常。
其實(shí)那種方法是不好的。因?yàn)樵趯?shí)際的線上環(huán)境里面,WebLogic 實(shí)例會因?yàn)楹芏喾N原因出現(xiàn)異常,比如內(nèi)存溢出、過載、死鎖等,這個時候它的 PID 或端口都沒有問題,但實(shí)際上它已經(jīng)無法正常工作了,需要通過重啟 WebLogic 實(shí)例才能恢復(fù)正常。
一個更加靠譜的監(jiān)控方法是,在腳本里面調(diào)用 WebLogic 的命令 weblogic.Admin 來判斷實(shí)例的狀態(tài)。希望本文的腳本對大家有所幫助。
操作系統(tǒng)版本:
C:\>systeminfo | findstr /c:"OS Name"
OS Name: Microsoft(R) Windows(R) Server 2003 Enterprise x64 Edition |
WebLogic 版本:
C:\>java weblogic.version | findstr "WebLogic"
WebLogic Server 10.3.6.0 Tue Nov 15 08:52:36 PST 2011 1441050 |
代碼:- @echo off
- set "CLASSPATH=D:\WebLogic\Middleware\wlserver_10.3\server\lib\weblogic.jar;%CLASSPATH%"
- set "PATH=D:\WebLogic\Middleware\jrockit_160_29_D1.2.0-10\bin;%PATH%"
- set "URL=10.135.8.188:7001"
- set "USER_NAME=weblogic"
- set "PASS_WORD=welcome1"
- set "DOMAIN_NAME=wl_server"
- set "SERVER_NAME=examplesServer"
- set "SERVER_INFO=%DOMAIN_NAME%:%SERVER_NAME%"
- set CMD_WLS_ADMIN=java weblogic.Admin -url %URL% -username %USER_NAME% -password %PASS_WORD% get -pretty -mbean "%DOMAIN_NAME%:Location=%SERVER_NAME%,Name=%SERVER_NAME%,Type=ServerRuntime"
- set "STATE_FILE=WLS_STATE.log"
- %CMD_WLS_ADMIN% | more > "%STATE_FILE%" 2>&1
- REM Check WebLogic instance running status
- findstr /c:"State: RUNNING" "%STATE_FILE%" >nul 2>&1
- if errorlevel 1 (
- echo %URL% %DOMAIN_NAME% %SERVER_NAME% running status is not OK
- ) else (
- echo %URL% %DOMAIN_NAME% %SERVER_NAME% running status is OK
- )
- REM Check WebLogic instance health status
- findstr /c:"State:HEALTH_OK" "%STATE_FILE%" >nul 2>&1
- if errorlevel 1 (
- echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is not OK
- ) else (
- echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is OK
- )
- REM Check WebLogic instance open sockets number
- set "SOCKET_MAX=200"
- for /f "tokens=2" %%i in ('findstr "OpenSocketsCurrentCount" "%STATE_FILE%"') do (
- set "SOCKET_NOW=%%i"
- )
- if "x%SOCKET_NOW%" equ "x" (
- echo %URL% %DOMAIN_NAME% %SERVER_NAME% open sockets number is not OK: fail to get
- ) else (
- if %SOCKET_NOW% gtr %SOCKET_MAX% (
- echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is not OK: %SOCKET_NOW% greater than %SOCKET_MAX%
- ) else (
- echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is OK: %SOCKET_NOW% not greater than %SOCKET_MAX%
- )
- )
- pause
復(fù)制代碼 |
|