【问题标题】:Does the TIBCO EMS server manage reconnection? or does the client?TIBCO EMS 服务器是否管理重新连接?还是客户?
【发布时间】:2010-09-19 01:50:41
【问题描述】:

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

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

TIBCO EMS 用户指南(第 292 页)讨论了故障转移方案、客户端通知和客户端自动传输到备份服务器,但没有具体与“重新连接”相关。

在“重新连接”场景中,服务器是否处理所有事情?还是客户端必须对其 TIBCO.EMS.Connection 实例做些什么?

【问题讨论】:

  • 哇,这很有趣。在我的测试中,我认为没有办法在单服务器环境中启用容错。我得试试这个。
  • 这是关键 - 内置重新连接不起作用,因为我们在单服务器环境中进行测试,显然,它需要故障转移环境才能工作。非常感谢!
  • 添加信息:当 EMS 库处于重新连接模式时,我尝试发布到该连接。发布请求不会引发异常,而是锁定应用程序,直到重新连接成功,然后发送消息。如果重新连接所有尝试都失败,我预计会出现异常。

标签: c# tibco tibco-ems ems


【解决方案1】:

从我们的测试来看,服务器和客户端上都有启用此功能的设置。在客户端,SetReconnAttemptCount、Delay、Timeout 控制客户端在意识到服务器故障转移/连接故障转移后尝试重新连接的尝试。

在我们的测试中,我们使用了单一服务器环境,在连接字符串中列出了两次服务器(使用您上面概述的技巧),当该服务器脱机时,我们收到了故障转移过程生效的客户端通知(我们启用了 Tibems.SetExceptionOnFTSwitch(true)),当服务器重新上线时,我们的客户端无缝地重新连接,没有错过任何一个节拍。我们不需要编写任何代码,内部重新连接逻辑发挥了它的魔力。

在服务器端,需要启用容错,并且我认为需要启用服务器-客户端和客户端-服务器心跳(尽管尚未验证)。

希望这会有所帮助。

【讨论】:

  • 那么,当主服务器宕机时会出现故障转移通知异常……当主服务器重新连接或备份接管时,您会得到另一个吗?
  • 不,这是一个事件。一旦备份服务器接管,它将成为主服务器,因此除非发生另一次故障转移,否则它将保持主服务器。此外,在单个服务器 nonFT Env 中,我们很快就会出现连接失败。在 FT 环境中,重新连接成功后似乎会出现故障转移消息。
猜你喜欢
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多