Hitachi

uCosminexus Application Runtime for Spring Boot ユーザーズガイド


16.3.2 ハートビート監視

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

〈この項の構成〉

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

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

ハートビートの監視状態とその説明を次の表に示します。

表16‒3 ハートビートの監視状態とその説明

状態

説明

初期状態

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

正常状態

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

異常状態

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

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

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

(2) 障害検知時の動作

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

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

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

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

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

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

  • モニタ対象プロセスの停止指示は出さないで処理を続行します。

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

(3) 設定できる内容

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

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

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

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

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

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

  • モニタ対象プロセス側のハートビート送信間隔

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

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

config.properties(本製品の設定ファイル)については,「18.2 config.properties(本製品の設定ファイル)」を参照してください。

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

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

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

該当するプロパティと設定例を次に示します。この例では,「16.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(本製品の設定ファイル)については,「18.2 config.properties(本製品の設定ファイル)」を参照してください。