猿问

JGroups:发现 num_discovery_runs 不工作

我有自己的,Protocol[]看起来像这样


  Protocol[] prot_stack = {

                    new UDP(),

                    new PING()

                            .setValue("num_discovery_runs", 10)

                            .setValue("stagger_timeout", 1500)

                            .setValue("async_discovery", true)

                            .setValue("async_discovery_use_separate_thread_per_request", true)

                            .setValue("discovery_rsp_expiry_time", 5000),

                    new MERGE3(),

                    new FD_SOCK(),

                    new FD_ALL(),

                    new VERIFY_SUSPECT(),

                    new BARRIER(),

                    new NAKACK2(),

                    new UNICAST3(),

                    new STABLE(),

                    new GMS(),

                    new UFC(),

                    new MFC(),

                    new FRAG2()};

但由于某种原因,如果num_discovery_runs设置为 10,则发现不再有效,并且不再响应。当num_discovery_run设置为 3 时,它会运行发现,但仅运行一次。


它不会运行它三次。它只是在 3000 毫秒后发现没有可用的协调器并创建了自己的协调器(我想通过运行更多的发现来防止这种情况)。


当前代码如下所示


channel = new JChannel(prot_stack).setReceiver(this).addChannelListener(this);

channel.setDiscardOwnMessages(true);

channel.setName("RFID Cluster");

channel.connect("RFID Cluster");

我究竟做错了什么?为什么我不能将发现运行的数量更改为高于 3(无论如何这都不起作用)。


ibeautiful
浏览 138回答 1
1回答

开满天机

您发现了一个错误!修复了它并将更改提交给master. ant jar您可以通过从源代码创建 JAR(或将完成这项工作)来尝试修复mvn package,或者等待 4.1.5 发布。这将需要几周的时间。解决方法:不要将num_discovery_runs值设置为大于1。
随时随地看视频慕课网APP

相关分类

Java
我要回答