プロセス相互監視のしくみ

Agentのプロセスのうち、huliotserviceとhuliotcoreは互いに生存確認しています。huliotserviceは、huliotcoreがダウンしたとき、huliotcoreを起動します。huliotcoreは、huliotserviceがダウンしたとき、huliotserviceを起動します。一方のプロセスが停止した場合、他方のプロセスが停止したプロセスを起動するため、自動的に復旧します。

(1) 正常に終了した場合

正常終了の場合の、huliotserviceとhuliotcoreの相互生存確認の流れを次の図に示します。

図2.9 正常終了の流れ

1. huliotserviceは、停止命令を受信すると、huliotcoreに停止要求を伝えます。

2. 停止要求を受けたhuliotcoreは終了します。huliotcoreの終了によってプロセス間通信は切断されます。

3. huliotserviceは、プロセス間通信の切断によってhuliotcoreの終了を検知すると、終了します。

(2) huliotcoreが何らかの原因により停止した場合

huliotcoreが停止した場合の、huliotserviceとhuliotcoreの相互生存確認の流れを次の図に示します。

図2.10 huliotcoreが停止した場合の処理の流れ

1. huliotcoreが停止すると、プロセス間通信が切れます。

2. huliotserviceは、プロセス間通信が切れたことを検知すると、huliotcoreを起動します。

(3) huliotserviceが何らかの原因により停止した場合

huliotserviceが停止した場合の、huliotserviceとhuliotcoreの相互生存確認の流れを次の図に示します。

図2.11 huliotserviceが停止した場合の処理の流れ

1. huliotserviceが停止すると、プロセス間通信が切れます。

2. huliotcoreは、プロセス間通信が切れたことを検知すると、huliotserviceを起動して、自分は終了します。

3. huliotserviceは、プロセス間通信が切れていることを検知し、huliotcoreを起動します。