分布式设置的 Tibco EMS 服务器容错不适用于 java 应用程序
Tibco EMS Server Fault tolerance with distributed setup not working for java app
我在单独的虚拟机(主机 1 和主机 2)上使用 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、factories.conf
设置时我是否遗漏了什么?我们是否必须像同步数据库一样在后台同步 Tibco 文件?
根据 Tibco EMS 8.4 user guide 这是非共享状态容错:
并且在这个 FT Primary 和 Secondary 不会共享数据,并且服务器不会将 FT 处理为未共享的数据,因此出现上述未知连接错误。
客户端必须处理它。为此需要使用 com.tibco.tibems.ufo package(tibjmsufo.jar) for java client 来支持 Unshared State FT。
另外,需要提到 serverUrl=tcp://server0:7222+tcp://server1:7344 (用+号分隔)
我在单独的虚拟机(主机 1 和主机 2)上使用 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、factories.conf设置时我是否遗漏了什么?我们是否必须像同步数据库一样在后台同步 Tibco 文件?
根据 Tibco EMS 8.4 user guide 这是非共享状态容错:
并且在这个 FT Primary 和 Secondary 不会共享数据,并且服务器不会将 FT 处理为未共享的数据,因此出现上述未知连接错误。
客户端必须处理它。为此需要使用 com.tibco.tibems.ufo package(tibjmsufo.jar) for java client 来支持 Unshared State FT。 另外,需要提到 serverUrl=tcp://server0:7222+tcp://server1:7344 (用+号分隔)