Ehcacheの自動ピア・ディスカバリ周りのコードを読んでみる(その4)

MulticastKeepaliveHeartbeatReceiver$MulticastReceiverThread

ハートビートを受け取るのは、CacheManager の初期化時に別スレッドとして作成・実行された MulticastReceiverThread です。このスレッドは、dispose()メソッドが呼び出されるまで、内部のwhileループでハートビート受信処理を行い続けます。以下に、run内部のループ処理を示します。

  1. ハートビートの受信。受信し終わるまでブロック。
  2. ハートビートから、RMIのURL情報のリストを取り出す。
  3. 自分自身の放ったハートビートかどうかを確認。(CacheManagerPeerListenerから全ピア情報を取り出し、先頭の1つだけからURLのベース情報を取得し、情報がマッチするかどうかを確認。マッチしたら、自分自身のハートビートと認識)
  4. 自分自身の放ったハートビートであれば、何もしないでループ処理の先頭に戻る。
  5. 受け取った情報を処理する。(この中でRMIのルックアップとかしてます)

ここまでで、ハートビートの本質的な部分のソースは追えたという感じでしょうか。

ピアは各キャッシュ単位なので、自動ピア・ディスカバリのソースリーディングはまだまだ続きます。