Hitachi

uCosminexus Application Runtime for Apache Tomcat ユーザーズガイド


10.3.2 ハートビート監視

稼働監視コンポーネントは,Tomcatサーバプロセスから定期的に送信されるハートビートを監視し,ハートビート待ちタイムアウトが発生するかどうかによって,Tomcatサーバプロセスのハングアップを監視できます。

〈この項の構成〉

(1) 障害発生の判定基準

ハートビート待ちタイムアウトの計測を開始してから,Tomcatサーバプロセスからのハートビートを受信できなかった場合,障害発生と判定します。

詳細な状態は次のとおりです。

状態

説明

初期状態

Tomcatサーバプロセスからの開始完了通知受信時にハートビート待ちタイムアウトの計測を開始します。

正常状態

毎回のハートビート受信時にプロセスは正常に稼働していると判定し,ハートビート待ちタイムアウトをリセットして計測を開始します。プロセスが正常に稼働していると判定している間は,イベントは発行しません。

異常状態

ハートビート待ちタイムアウトが発生した場合,障害発生と判定し,メッセージKDLR20223-Wを出力して障害イベントを1回発行します。

その後,ハートビートを受信した場合は障害の回復と判定し,メッセージKDLR20224-Iを出力し回復イベントを1回発行して正常状態に戻ります。

障害イベント・回復イベントの発行時に出力されるイベントプロパティと,イベント検知後のアクションについては,「(2) 障害検知時の動作」を参照してください。

(2) 障害検知時の動作

(a) 障害検知時に出力されるイベントプロパティ

障害イベント・回復イベントの発行時には,JSON形式のイベントプロパティを出力します。障害イベントの例を次に示します。

{
 "type": "heartbeatdelay",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false
}

(b) 障害検知後のアクション

障害イベントの通知を受けた場合,デフォルトでは次のアクションを実行します。

  • スナップショットログを収集します。

  • Tomcatサーバプロセスの停止指示は出さないで処理を続行します。

アクションの変更方法については「(3)(b) 障害イベント・回復イベントの通知後の動作」を参照してください。

(3) 設定できる内容

ハートビート監視では,Tomcatサーバプロセスから定期的に送信されるハートビートを監視します。ハートビートの送信は,「10.2.2 Tomcatサーバプロセスへの稼働監視用ライフサイクルリスナーの設定」で設定したライフサイクルリスナーによって実施されます。

ハートビート監視に関して設定できる内容を次に示します。

(a) ハートビートの監視設定

Tomcatプロセスモニタのconfig.properties(uCART設定ファイル)で次の項目を設定できます。

  • Tomcatプロセスモニタ側のハートビート監視の有効/無効

  • Tomcatプロセスモニタ側のハートビート待ちタイムアウト時間

  • Tomcatサーバプロセス側のハートビート送信間隔

該当するプロパティと設定例を次に示します。この例ではデフォルト値を記載しています。

healthcheck.heartbeatdelay.enabled=true
healthcheck.heartbeatdelay.timeout=60000
healthcheck.heartbeat.interval=10000

config.properties(uCART設定ファイル)については,「12.2 config.properties(uCART設定ファイル)」を参照してください。

(b) 障害イベント・回復イベントの通知後の動作

障害イベント・回復イベントの通知後の動作は,次の項目を組み合わせてconfig.properties(uCART設定ファイル)で指定できます。

回復イベントの通知時にアクションを実行する場合で,そのアクション実行時間がhealthcheck.heartbeat.intervalで指定したインターバルを超えるとき,次のハートビート送信が遅れることがあります。

該当するプロパティと設定例を次に示します。この例では,「10.4 稼働監視機能の設定(ユーザコマンドの実行)」で設定する「ユーザコマンド定義のID」として,「exec1」「exec2」を設定しています。

healthcheck.heartbeatdelay.actions.failure.usercommand.idrefs.1=exec1
healthcheck.heartbeatdelay.actions.failure.snapshot=true
healthcheck.heartbeatdelay.actions.failure.terminate=false
healthcheck.heartbeatdelay.actions.recovery.usercommand.idrefs.1=exec2

config.properties(uCART設定ファイル)については,「12.2 config.properties(uCART設定ファイル)」を参照してください。