プロトコルスタック その2

昨日よくわからなかったのでソースを追う.

まずはじめにこれがJGroups APIを使う場合の基本形.チャンネルを作って接続,切断.

JChannel channel = new JChannnel("file://home/mir/default.xml");
channel.connect("demo-group");
channel.disconnect();
channel.close();

何も設定情報を与えないとデフォルトの設定が使用される.

public static final String DEFAULT_PROTOCOL_STACK=
        "UDP(mcast_addr=228.1.2.3;mcast_port=45566;ip_ttl=32):" +
        "PING(timeout=3000;num_initial_members=6):" +
        "FD(timeout=3000):" +
        "VERIFY_SUSPECT(timeout=1500):" +
        "pbcast.NAKACK(gc_lag=10;retransmit_timeout=600,1200,2400,4800):" +
        "UNICAST(timeout=600,1200,2400,4800):" +
        "pbcast.STABLE(desired_avg_gossip=10000):" +
        "FRAG:" +
        "pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;" +
        "shun=true;print_local_addr=true)";

で,ここから先の呼び出し経路をソース引用しつつエントリを書いていたのだけれども引用ソースの量が半端なく多くなってきたのでソースは割愛.

ソースから確認できたこと.

new JChannnel()において

コンストラクタはここまで,一番下のプロトコル以外何もしないらしい.

読み始めてから途中外出を挟んで結構時間がかかってしまったので,とりあえずはここまでをBlogにアップしておく.あとJChannel.connect(),JChannel.send(Message),JChannel.receive(long)を読むつもり.