Cosminexus アプリケーションサーバ V8 システム構築・運用ガイド
アプリケーションサーバでは,システムに障害が発生しそうな場合の動作をManagementアクションで定義できます。ManagementアクションにSmart Composer機能のコマンドを定義しておくことで,システムの運用中に障害が発生しそうな場合にサービスユニットを自動再起動できるため,迅速な障害対応ができます。
リソース枯渇監視機能でリソースの枯渇を事前に検知したり,J2EEアプリケーションの実行時間監視機能でJ2EEアプリケーションのタイムアウトを検知したりして,障害の発生しそうな状況になるとManagementイベントが発行されます。そのManagementイベントと対応づけたManagementアクションを実行し,障害が発生しそうなサービスユニットを自動的に再起動して,障害の発生を事前に回避します。Managementアクションによるサービスユニットの自動再起動処理を次の図に示します。
図8-20 Managementアクションによるサービスユニットの自動再起動処理
Smart Composer機能を使用すると,JavaVMのフルガーベージコレクションやスレッドなどのリソース枯渇を事前検知した場合,およびJ2EEアプリケーションの実行時間監視でタイムアウトなどが発生した場合に,問題の発生したサービスユニットを自動再起動できます。
ここでは例として,J2EEサーバのフルガーベージコレクションの予兆を検知した場合に,Managementアクションを使用してサービスユニットを自動再起動する方法について説明します。必要な操作は次のとおりです。
なお,リソース枯渇監視機能については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 運用/監視/連携編」の「4. リソースの枯渇監視」を参照してください。Managementアクションの概要については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 運用/監視/連携編」の「9.2 Managementイベントの通知とManagementアクションの概要」を参照してください。設定については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 運用/監視/連携編」の「9.4 Managementイベントによる処理の自動実行の設定」を参照してください。
JavaVMのフルガーベージコレクションやスレッドなどのリソース枯渇を事前検知した場合,J2EEアプリケーションの実行時間監視でタイムアウトが発生した場合などに発行されるManagementイベントを受信したときに,Management Serverが実行するManagementアクション実行コマンドを作成します。
ここでは,J2EEサーバのフルガーベージコレクションの予兆を検知した場合,次の順序でサービスユニットを再起動するManagementアクション実行コマンドを作成します。
Managementアクション実行コマンドのサンプルファイルをコピーして,Managementアクション実行コマンド(バッチファイルまたはシェルスクリプト)を作成してください。
サンプルファイル(<Cosminexusのインストールディレクトリ>\manager\examples\maction\mActionSample_closeUnit.bat)を,C:\work \maction_restartunit.batにコピーして,次のようなバッチファイルを作成します。
maction_restartunit.batファイルの記述例(一部抜粋)
... set CJCLDELLOG=<Cosminexusのインストールディレクトリ>\CC\client\bin\cjcldellog.bat set LOG_ROOT_DIR=%SystemDrive%\work ... set MNGSVR=192.168.100.100:%COSMI_MNG_MACT_MNGSVR_PORT% set UID=cosmi_admin set PWD=cosmi_admin_passwd echo cmx_stop_target.exe -m %MNGSVR% -u %UID% -p %PWD% -mode HOLD -s %WEBSYSTEM% -unit %UNIT% >> "%LOG%" 2>&1 cmx_stop_target.exe -m %MNGSVR% -u %UID% -p %PWD% -mode HOLD -s %WEBSYSTEM% -unit %UNIT% >> "%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 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 cmx_start_target.exe -m %MNGSVR% -u %UID% -p %PWD% -mode ALL -s %WEBSYSTEM% -unit %UNIT% >> "%LOG%" 2>&1 cmx_start_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% |
サンプルファイル(/opt/Cosminexus/manager/examples/maction/mActionSample_closeUnit.sh)を,/work/maction_restartunit.shにコピーして,次のようなシェルスクリプトを作成します。
maction_restartunit.shファイルの記述例(一部抜粋)
...
LOG_ROOT_DIR=/work
if [ ! -d ${LOG_ROOT_DIR} ]; then
...
MNGSVR=192.168.100.100:${COSMI_MNG_MACT_MNGSVR_PORT}
USERID=cosmi_admin
PASSWD=cosmi_admin_passwd
echo ./cmx_stop_target -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -mode HOLD -s ${WEBSYSTEM} -unit ${UNIT} >> "${LOG}" 2>&1
./cmx_stop_target -m ${MNGSVR} -u ${USERID} -p ${PASSWD} -mode HOLD -s ${WEBSYSTEM} -unit ${UNIT} >> "${LOG}" 2>&1
RET=$?
echo ${RET} >> "${LOG}"
if [ $RET -eq 0 ]; then
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 ./cmx_start_target -m ${MNGSVR} -u ${USERID} -p {PASSWD} -mode ALL -s ${WEBSYSTEM} -unit ${UNIT} >> "${LOG}" 2>&1
./cmx_start_target -m ${MNGSVR} -u ${USERID} -p {PASSWD} -mode ALL -s ${WEBSYSTEM} -unit ${UNIT} >> "${LOG}" 2>&1
RET=$?
echo ${RET} >> "${LOG}"
exit ${RET}
|
J2EEサーバのManagementイベントの発行が有効になっていない場合は,Managementイベントの発行を有効にします。Managementイベントの発行を有効にするには,次の手順で設定を変更してください。
<?xml version="1.0" encoding="UTF-8"?>
<model-definition xmlns="http://www.cosminexus.com/mngsvr/schema/ModelDefinition-2.5"> <web-system>
<name>MyWebSystem</name>
<!-- 負荷分散機の定義 -->
<load-balancer>
:
</load-balancer>
<!-- 物理ティア(combined-tier)の定義 -->
<tier>
<tier-type>combined-tier</tier-type>
<!-- J2EEサーバのManagementイベントの発行を有効にする設定 -->
<configuration>
<logical-server-type>j2ee-server</logical-server-type>
<param>
<param-name>ejbserver.manager.agent.MEventAgent.enabled</param-name>
<param-value>true</param-value>
</param>
</configuration>
</tier>
<!-- サービスユニットの定義 -->
<unit>
:
</unit>
</web-system>
<!-- ホストの定義 -->
<host>
:
</host>
</model-definition>
|
Managementイベントを発行するために,Managementイベント発行用メッセージIDリストファイルの設定や,リソース枯渇監視機能の設定が必要な場合があります。
通常はデフォルトのまま使用するため,設定の必要はありません。必要に応じて設定してください。
Managementイベントを発行したいメッセージのメッセージIDを,Managementイベント発行用メッセージIDリストファイルに記述します。Managementイベント発行用メッセージIDリストファイルの詳細については,マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「10.13 Managementイベント発行用メッセージIDリストファイル」を参照してください。
リソースの監視間隔やしきい値を指定してリソースを監視し,しきい値を超えた場合にアラートを出力できます。また,リソース枯渇監視情報をファイルに出力できます。
リソース枯渇監視機能を使用するためには,次の二つの設定が必要です。
デフォルトの設定では,リソース枯渇監視機能は有効になっています。リソース枯渇監視機能の設定については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 運用/監視/連携編」の「4. リソースの枯渇監視」を参照してください。
Managementアクションの定義,メッセージIDとManagementアクションとのマッピングなどは,Managementアクション実行用プロパティファイル(maction.properties)に定義します。maction.propertiesについては,マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「10.11 maction.properties(Managementアクション実行用プロパティファイル)」を参照してください。
# Definition of Management action. maction.restart_unit.command=C:/work/maction_restartunit.bat maction.restart_unit.timeout=180 maction.restart_unit.timeout.forced_stop=false # Mapping of Message ID and Management actions. # KDJE34500-W: Alert - Memory(Java Heap) maction.message.KDJE34500-W.mactions=restart_unit # Mapping of Logical server and Management actions. maction.tier.MyWebSystem.combined-tier.mactions=restart_unit |
# Definition of Management action. maction.restart_unit.command=/work/maction_restartunit.sh maction.restart_unit.timeout=180 maction.restart_unit.timeout.forced_stop=false # Mapping of Message ID and Management actions. # KDJE34500-W: Alert - Memory(Java Heap) maction.message.KDJE34500-W.mactions=restart_unit # Mapping of Logical server and Management actions. maction.tier.MyWebSystem.combined-tier.mactions=restart_unit |
<Cosminexusのインストールディレクトリ>\manager\bin\mngsvrctl stop <Cosminexusのインストールディレクトリ>\manager\bin\mngsvrctl start |
# /opt/Cosminexus/manager/bin/mngsvrctl stop # /opt/Cosminexus/manager/bin/mngsvrctl start |
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.