2014-03-04 22 views
0

我不知道如何支持我的产品。假设我有一个糟糕的网络。 jChannel实例绑定到不能将数据路由到其他集群成员的错误地址。我正在使用JDBC_PING。所有的jGroups节点都成功地连接到数据库,所以JDBC_PING可以很好地工作。但是,这个集群的4个成员形成4个独立的集群。jGroups和JDBC_PING,成员不能说话但没有错误

没有错误记录在任何地方。如果我启用完整的TRACE调试(通过堆栈底部),我看不出有什么问题。

我不是说我想让jGroups在我的糟糕网络上工作。

我必须能够确定计算机已加入群集。如果他们没有,我必须能够报告失败。有没有解决这个问题的方法?我已经仔细研究过这个问题。我在想,我唯一的解决方案是让所有节点通过数据库彼此通信并使用我自己的解决方案,但这很愚蠢,因为jGroups已经拥有所有这些信息!

回答

0

你不能设置正确的绑定地址吗?或者,如果这是不可能的,至少在连接通道后检查绑定地址是否正确,如果绑定地址错误则关闭它。 你也可以检查一个4的集群是否有前者使用viewAccepted(View v)。

+0

我提供的产品将在第三方网络中运行。我希望我的产品不需要指定绑定地址即可开箱即用。如果默认值不起作用,我想知道默认值不起作用。然后我可以通知他们并告诉他们他们必须配置bind_addr或指定IPv4/IPv6。我今天的节点组成一个集群,但调试显示JDBC_PING.readAll知道所有节点都存在。 – user3380341

+0

(续)我遇到的一个问题是,我发现计算机配置了IPv4而IPv6不是。 jGroups(真正的java.net)绑定到IPv6回送,而不是使用健康的IPv4网络。指定NON_LOOPBACK不会解决这个问题。 jGroups向我证明它非常稳定可靠。这一个问题已经使人虚弱。 – user3380341

相关问题