首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tibco-Ems故障转移问题

Tibco-Ems故障转移问题
EN

Stack Overflow用户
提问于 2014-09-26 18:31:41
回答 3查看 8.8K关注 0票数 3

我有两个Tibco-Ems服务器运行,与容错设置.如果一个服务器不可用,则活动服务器按预期切换到故障转移服务器。

然而,有时我会犯一些奇怪的错误。然后,新的活动服务器说:“重新连接失败:连接未知的id= XY”

只有当我的客户端有一个开放的连接时,才会发生这种情况。但这正是我所期望的,连接也应该切换到新的活动服务器。就像我说的,有时起作用,有时不起作用。

当我在客户端注册EMS异常时,我会得到一个错误:“无法从传输连接读取数据:一个现有的连接被远程主机强制关闭。”

Stacktrace:在System.Net.Sockets.NetworkStream.Read(Byte[]缓冲器,Int32偏移,Int32大小)在TIBCO.EMS.LinkTcp._readEx(Byte[]缓冲区,Int32偏移,Int32大小)在TIBCO.EMS.LinkTcp._ReadWireMsg()在TIBCO.EMS.LinkTcp.LinkReader.Work()

现在我不知道我能做什么。也许有人能帮我弄清楚到底是什么问题。提前谢谢

更新:更新这里的延迟更新:即使我得到了“重新连接失败”错误,它仍能正常工作。第二个服务器将接管。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-29 03:44:42

事情是这样的..。EMS服务器跟踪它拥有的活动客户端连接,并在meta.db存储文件中保存有关这些连接的信息。在容错故障转移时,新的主EMS实例能够在客户端通过匹配客户端提供的信息与存储在meta.db存储文件中的信息重新连接时恢复客户端连接。

在某个时间点,EMS清理尚未重新连接的客户端连接。这个时间由ft_reconnect_timeout配置文件中的tibemsd.conf参数控制。此配置参数的默认设置为60秒。根据您的日志记录设置,当EMS清理“过期”连接时,您可能会看到mssage表示它已经“清除”了EMS日志中的客户端连接。

有时,在EMS服务器清除“过期”连接之后,客户端最终会尝试重新连接。如果网络分区阻止客户端成功地重新连接到EMS服务器,直到EMS服务器清理完连接,就会发生这种情况。当这种情况发生时,您将看到“重新连接失败:连接未知.”消息。

当客户端由于此错误而无法“重新连接”时,它只是尝试将连接作为“新”连接。这是可行的,它可以继续处理。

票数 4
EN

Stack Overflow用户

发布于 2018-03-13 12:51:18

我们有同样的问题,我们的错误是存储(ems db)在活动节点和备用节点之间没有共享,所以当活动ems失败时,新的活动ems无法恢复连接和消息。

票数 1
EN

Stack Overflow用户

发布于 2014-10-27 12:37:54

当您使用客户端FT而不是服务器级别FT时,就会发生这种情况,至少在我们面临这一问题时是这样的,而这正是造成这种情况的根本原因。

如果您使用的ems服务器与FT URL服务器1:端口,服务器2:端口,但服务器不是真正处于FT模式,当这两个服务器之间的连接切换时,您将遇到这个问题,因为连接转移到另一个服务器,但由于不连贯的FT设置,故障服务器上的现有连接无法被破坏或获取。

在服务器端的真正FT设置中,活动服务器自动假定这些连接处于活动状态,并继续为它们服务。请验证服务器级配置。

对我们来说,提供服务器级别的FT帮助解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26066117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档