我在单独的vm(host1和host2)上用2个实例进行了容错设置。如果我停止主实例,则辅助实例将被成功激活,但是当前连接将因错误而关闭
重新连接失败:id = 5的连接未知
2018-08-09 14:18:32.907 Connection to active server 'tcp://***:7222' has been lost.
2018-08-09 14:18:32.907 Server activating on failure of 'tcp://****:7222'.
2018-08-09 14:18:32.907 Server rereading configuration.
2018-08-09 14:18:32.938 Recovering state, please wait.
2018-08-09 14:18:32.938 Recovered 1 pending connection.
2018-08-09 14:18:32.938 Server is now active.
2018-08-09 14:18:40.032 [**@***]: reconnect failed: connection unknown for id=156
2018-08-09 14:20:35.485 Purged 1 connection.
当我在2台Tibco实例(端口9222/9224)上运行同一台机器上进行相同设置时,它可以正常工作,并且当主服务器出现故障时,应用程序可以使用来自辅助服务器的消息。
此外,java应用程序能够在启动时与两台服务器连接,而与两台服务器连接都没有问题。
我尝试增加ft_reconnect_timeout,然后在Tibco服务器上未收到任何错误,但应用程序未选择消息。
我已根据TIBCO EMS In Fault-Tolerant Mode
更新了tibemsd.conf,factory.conf。设置过程中我没有错过任何事情吗?我们是否需要像在数据库中那样在后台对Tibco文件进行任何同步?
答案 0 :(得分:0)
根据Tibco EMS 8.4 user guide,这是未共享状态的容错:
并且在此FT中,主节点和辅助节点不会共享数据,服务器也不会处理FT,因为数据未共享,因此超出了未知的连接错误。
客户端必须处理它。对于Java客户端,需要使用com.tibco.tibems.ufo软件包(tibjmsufo.jar)来支持Unshared State FT。 另外,需要提及serverUrl = tcp:// server0:7222 + tcp:// server1:7344(以+号分隔)