C# TIBCO EMS服务器是否管理重新连接?还是客户呢?

C# TIBCO EMS服务器是否管理重新连接?还是客户呢?,c#,tibco,tibco-ems,ems,C#,Tibco,Tibco Ems,Ems,TIBCO EMS.NET参考指南(第134页) 要启用重新连接行为和容错,serverURL参数必须是两个或多个URL的逗号分隔列表。在只有一台服务器的情况下,您可以提供该服务器URL的两个副本以启用客户端重新连接(例如,tcp://localhost:7222,tcp://localhost:7222) 《TIBCO EMS用户指南》(第292页)讨论了故障切换场景、客户端通知以及客户端到备份服务器的自动传输,但没有具体的“重新连接”相关内容 在“重新连接”场景中,服务器是否处理所有事情?或

TIBCO EMS.NET参考指南(第134页)

要启用重新连接行为和容错,serverURL参数必须是两个或多个URL的逗号分隔列表。在只有一台服务器的情况下,您可以提供该服务器URL的两个副本以启用客户端重新连接(例如,tcp://localhost:7222,tcp://localhost:7222)

《TIBCO EMS用户指南》(第292页)讨论了故障切换场景、客户端通知以及客户端到备份服务器的自动传输,但没有具体的“重新连接”相关内容


在“重新连接”场景中,服务器是否处理所有事情?或者客户端是否必须对其TIBCO.EMS.Connection实例执行某些操作?

根据我们的测试,服务器和客户端上都有启用此功能的设置。在客户端,setReconAttentimpCount、Delay、Timeout控制客户端在意识到服务器故障切换/连接故障切换后尝试重新连接的尝试

在我们的测试中,我们使用了一个单服务器环境,在连接字符串中列出了两次服务器(使用上面概述的技巧),当该服务器脱机时,我们收到了故障转移过程生效的客户端通知(我们启用了Tibems.setExceptionOnOnOnFontSwitch(true))以及服务器恢复联机时,我们的客户似乎毫无遗漏地重新连接了。我们不需要编写任何代码,内部重新连接逻辑发挥了神奇的作用

在服务器端,需要启用容错功能,我认为需要启用服务器-客户端和客户端-服务器心跳(尽管这尚未得到验证)


希望这能有所帮助。

哇,这很有趣。在我的测试中,我认为没有办法在单服务器环境中实现容错。我必须试一试。这是关键-内置重新连接无法工作,因为我们在单服务器环境中进行测试,显然,它需要故障切换环境才能工作。非常感谢!添加信息:当EMS库处于重新连接模式时,我尝试发布到该连接。发布请求锁定应用程序,直到重新连接成功,然后发送消息,而不是引发异常。如果重新连接失败,我预计会出现异常。因此,故障转移通知异常会在主服务器停机时发生。。。当主服务器重新连接或备份接管时,您是否会收到另一个事件?不,这是一个事件。一旦备份服务器接管,它将成为主服务器,因此除非发生另一次故障切换,否则它将保持为主服务器。此外,在单服务器nonFT Env中,我们很快就会出现连接故障。在FT env中,故障切换消息似乎在重新连接成功后出现。