コマンドファイルのサンプルが提供されていますので,サンプルを参考にしてコマンドファイルを作成してください。サンプルの格納場所を次に示します。
- Windowsの場合
<Application Serverのインストールディレクトリ>¥manager¥examples¥maction
- UNIXの場合
/opt/Cosminexus/manager/examples/maction
なお,サンプルを使用する場合は,mngsvrutilコマンドの引数(-m,-u,-pオプションなど)やログファイルの格納先を環境に合わせて適宜変更してください。
(a) Managementイベント発行サーバを再起動するサンプル
- サンプルのファイル名
- Windowsの場合:mActionSample_restartServer.bat
- UNIXの場合:mActionSample_restartServer.sh
- サンプルの動作
- Managementイベントを発行した論理サーバを再起動します。
- このサンプルは,リソース枯渇監視機能でManagementイベントを発行する場合に使用できます。
- リソース枯渇監視機能では,JavaVMでのメモリの使用状況を監視し,設定されているしきい値を超えて,FullGCが発生しそうな場合にメッセージを出力します。
- Managementイベント発行機能は,出力されたメッセージに対応したManagementイベントを発行したあとManagementアクションを実行し,Managementイベントを発行したJ2EEサーバを再起動します。
- Managementイベントを発行したJ2EEサーバを停止することで,J2EEアプリケーションを閉塞できます。また,J2EEサーバがCTMによってリクエストを負荷分散させている場合は,J2EEサーバを停止することで,新規リクエストをほかのJ2EEサーバに分散できます。
Managementイベント発行サーバを再起動するサンプルを次に示します。
- Windowsの場合
(省略)
:
rem Management action sample for restart server.
setlocal
set LSNAME=%COSMI_MNG_MACT_LSNAME%
set MSGID=%COSMI_MNG_MACT_MSG_ID%
set CJCLDELLOG=%COSMINEXUS_HOME%¥CC¥client¥bin¥cjcldellog.bat
set LOG_ROOT_DIR=%SystemDrive%¥<MyLogDir>
if not exist "%LOG_ROOT_DIR%" mkdir "%LOG_ROOT_DIR%"
call "%CJCLDELLOG%" -t 30d -f "%LOG_ROOT_DIR%"
set LOG_DIR=%LOG_ROOT_DIR%¥%date:/=%
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
set LOG=%LOG_DIR%¥%time::=%_%LSNAME%_%MSGID%.txt
echo %0 > "%LOG%"
set MNGSVR=localhost:%COSMI_MNG_MACT_MNGSVR_PORT%
set UID=<User-id>
set PWD=<Password>
echo mngsvrutil.exe -m %MNGSVR% -u %UID% -p %PWD% -t %LSNAME% -s stop server >> "%LOG%" 2>&1
mngsvrutil.exe -m %MNGSVR% -u %UID% -p %PWD% -t %LSNAME% -s stop server >> "%LOG%" 2>&1
set RET=%ERRORLEVEL%
echo %RET% >> "%LOG%"
if not %RET% == 0 goto END
echo mngsvrutil.exe -m %MNGSVR% -u %UID% -p %PWD% -t %LSNAME% -s start server >> "%LOG%" 2>&1
mngsvrutil.exe -m %MNGSVR% -u %UID% -p %PWD% -t %LSNAME% -s start server >> "%LOG%" 2>&1
set RET=%ERRORLEVEL%
echo %RET% >> "%LOG%"
:END
exit %RET% |
- UNIXの場合
(省略)
:
# Management action sample for restart server.
LSNAME=${COSMI_MNG_MACT_LSNAME}
MSGID=${COSMI_MNG_MACT_MSG_ID}
LOG_ROOT_DIR=/tmp/<MyLogDir>
if [ ! -d ${LOG_ROOT_DIR} ]; then
/bin/mkdir ${LOG_ROOT_DIR}
fi
/usr/bin/find ${LOG_ROOT_DIR}/* -depth -mtime +30 | /usr/bin/xargs /bin/rm -fr
LOG_DIR=${LOG_ROOT_DIR}/`/bin/date +%y%m%d`
if [ ! -d ${LOG_DIR} ]; then
/bin/mkdir ${LOG_DIR}
fi
LOG=${LOG_DIR}/`/bin/date +%H%M%S`_${LSNAME}_${MSGID}.txt
echo $0 > "${LOG}"
MNGSVR=localhost:${COSMI_MNG_MACT_MNGSVR_PORT}
USERID=<User-id>
PASSWD=<Password>
echo ./mngsvrutil -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -t ${LSNAME} -s stop server >> "${LOG}" 2>&1
./mngsvrutil -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -t ${LSNAME} -s stop server >> "${LOG}" 2>&1
RET=$?
echo ${RET} >> "${LOG}"
if [ $RET -eq 0 ]; then
echo ./mngsvrutil -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -t ${LSNAME} -s start server >> "${LOG}" 2>&1
./mngsvrutil -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -t ${LSNAME} -s start server >> "${LOG}" 2>&1
RET=$?
echo ${RET} >> "${LOG}"
fi
exit ${RET} |
(b) Managementイベント発行サーバの所属サービスユニットを閉塞するサンプル
Managementイベント発行サーバの所属サービスユニットを閉塞するサンプルが提供されていますので,サンプルを参考にして作成してください。サンプルのファイル名と動作を次に示します。
- サンプルのファイル名
- Windowsの場合:mActionSample_closeUnit.bat
- UNIXの場合:mActionSample_closeUnit.sh
- サンプルの動作
- サービスユニットに所属するJ2EEサーバにリソース枯渇などの障害が発生した場合に,Managementイベントを発行したサーバを閉塞します。
Managementイベント発行サーバの所属サービスユニットを閉塞するサンプルを次に示します。
- Windowsの場合
(省略)
:
rem Management action sample for close unit.
setlocal
set LSNAME=%COSMI_MNG_MACT_LSNAME%
set MSGID=%COSMI_MNG_MACT_MSG_ID%
set WEBSYSTEM=%COSMI_MNG_MACT_WEBSYSTEM%
set UNIT=%COSMI_MNG_MACT_UNIT%
set CJCLDELLOG=%COSMINEXUS_HOME%¥CC¥client¥bin¥cjcldellog.bat
set LOG_ROOT_DIR=%SystemDrive%¥<MyLogDir>
if not exist "%LOG_ROOT_DIR%" mkdir "%LOG_ROOT_DIR%"
call "%CJCLDELLOG%" -t 30d -f "%LOG_ROOT_DIR%"
set LOG_DIR=%LOG_ROOT_DIR%¥%date:/=%
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
set LOG=%LOG_DIR%¥%time::=%_%LSNAME%_%MSGID%.txt
echo %0 > "%LOG%"
if "%WEBSYSTEM%" == "" goto :ERR
if "%UNIT%" == "" goto :ERR
set MNGSVR=localhost:%COSMI_MNG_MACT_MNGSVR_PORT%
set UID=<User-id>
set PWD=<Password>
echo cmx_stop_target.exe -m %MNGSVR% -u %UID% -p %PWD% -mode ALL -s %WEBSYSTEM% -unit %UNIT% >> "%LOG%" 2>&1
cmx_stop_target.exe -m %MNGSVR% -u %UID% -p %PWD% -mode ALL -s %WEBSYSTEM% -unit %UNIT% >> "%LOG%" 2>&1
set RET=%ERRORLEVEL%
echo %RET% >> "%LOG%"
goto :END
:ERR
set RET=2
:END
exit %RET% |
- UNIXの場合
(省略)
:
# Management action sample for close unit.
LSNAME=${COSMI_MNG_MACT_LSNAME}
MSGID=${COSMI_MNG_MACT_MSG_ID}
WEBSYSTEM=${COSMI_MNG_MACT_WEBSYSTEM}
UNIT=${COSMI_MNG_MACT_UNIT}
LOG_ROOT_DIR=/tmp/<MyLogDir>
if [ ! -d ${LOG_ROOT_DIR} ]; then
/bin/mkdir ${LOG_ROOT_DIR}
fi
/usr/bin/find ${LOG_ROOT_DIR} -depth -mtime +30 -mindepth 1 -exec /bin/rm -fr {} ¥;
LOG_DIR=${LOG_ROOT_DIR}/`/bin/date +%y%m%d`
if [ ! -d ${LOG_DIR} ]; then
/bin/mkdir ${LOG_DIR}
fi
LOG=${LOG_DIR}/`/bin/date +%H%M%S`_${LSNAME}_${MSGID}.txt
echo $0 > "${LOG}"
if [ "${WEBSYSTEM}" = "" -o "${UNIT}" = "" ]; then
exit 2
fi
MNGSVR=localhost:${COSMI_MNG_MACT_MNGSVR_PORT}
USERID=<User-id>
PASSWD=<Password>
echo ./cmx_stop_target -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -mode ALL -s ${WEBSYSTEM} -unit ${UNIT} >> "${LOG}" 2>&1
./cmx_stop_target -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -mode ALL -s ${WEBSYSTEM} -unit ${UNIT} >> "${LOG}" 2>&1
RET=$?
echo ${RET} >> "${LOG}"
exit ${RET} |