Cosminexus 簡易構築・運用ガイド
Cosminexusでは,システムに障害が発生しそうな場合の動作をManagementアクションで定義できます。ManagementアクションにSmart Composer機能のコマンドを定義しておくことで,システムの運用中に障害が発生しそうな場合にサービスユニットを自動再起動できるため,迅速な障害対応ができます。
リソース枯渇監視機能でリソースの枯渇を事前に検知したり,J2EEアプリケーションの実行時間監視機能でJ2EEアプリケーションのタイムアウトを検知したりして,障害の発生しそうな状況になるとManagementイベントが発行されます。そのManagementイベントと対応づけたManagementアクションを実行し,障害が発生しそうなサービスユニットを自動的に再起動して,障害の発生を事前に回避します。Managementアクションによるサービスユニットの自動再起動処理を次の図に示します。
図6-24 Managementアクションによるサービスユニットの自動再起動処理
Smart Composer機能を使用すると,JavaVMのフルガーベージコレクションやスレッドなどのリソース枯渇を事前検知した場合,およびJ2EEアプリケーションの実行時間監視でタイムアウトなどが発生した場合に,問題の発生したサービスユニットを自動再起動できます。
ここでは例として,J2EEサーバのフルガーベージコレクションの予兆を検知した場合に,Managementアクションを使用してサービスユニットを自動再起動する方法について説明します。必要な操作は次のとおりです。
なお,リソース枯渇監視機能およびManagementアクションの概要については,マニュアル「Cosminexus 機能解説」のシステムの運用支援に関する説明を,設定については,マニュアル「Cosminexus システム構築ガイド」の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 リファレンス 定義編」を参照してください。
リソースの監視間隔やしきい値を指定してリソースを監視し,しきい値を超えた場合にアラートを出力できます。また,リソース枯渇監視情報をファイルに出力できます。
リソース枯渇監視機能を使用するためには,次の二つの設定が必要です。
デフォルトの設定では,リソース枯渇監視機能は有効になっています。リソース枯渇監視機能の設定については,マニュアル「Cosminexus システム構築ガイド」のリソース枯渇監視の設定に関する説明を参照してください。
Managementアクションの定義,メッセージIDとManagementアクションとのマッピングなどは,Managementアクション実行用プロパティファイル(maction.properties)に定義します。maction.propertiesファイルの詳細については,マニュアル「Cosminexus リファレンス 定義編」を参照してください。
# 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) 2006, 2007, Hitachi, Ltd.