TIBCO EMS 服务器是否管理重新连接? 或者客户呢?
TIBCO EMS .NET 参考指南说(第 134 页)
要启用重新连接行为和容错功能,serverURL 参数必须是两个或多个 URL 的逗号分隔列表。 在只有一台服务器的情况下,您可以提供该服务器 URL 的两个副本以启用客户端重新连接(例如,tcp://localhost:7222,tcp://localhost:7222)。
TIBCO EMS 用户指南(第 292 页)讨论了故障转移场景、客户端通知以及客户端自动传输到备份服务器,但没有与“重新连接”具体相关。
在“重新连接”场景中,服务器会处理所有事情吗? 或者客户端是否必须对其 TIBCO.EMS.Connection 实例执行某些操作?
The TIBCO EMS .NET reference guide says (pg 134)
To enable reconnection behavior and fault tolerance, the serverURL parameter must be a comma-separated list of two or more URLs. In a situation with only one server, you may supply two copies of that server’s URL to enable client reconnection (for example, tcp://localhost:7222,tcp://localhost:7222).
The TIBCO EMS user's guide (pg 292) talks about failover scenarios, client notification, and automatic transfer of clients to the backup server, but nothing specifically "reconnect" related.
In a "reconnect" scenario, does the server handle everything? or does the client have to do something with it's TIBCO.EMS.Connection instances?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从我们的测试来看,服务器和客户端上都有启用此功能的设置。 在客户端,SetReconnAttemptCount、Delay、Timeout 控制客户端在意识到服务器故障转移/连接故障转移后尝试重新连接的尝试。
在我们的测试中,我们使用单个服务器环境,在连接字符串中列出服务器两次(使用上面概述的技巧),当该服务器脱机时,我们收到故障转移过程生效的客户端通知(我们启用了 Tibems .SetExceptionOnFTSwitch(true)),当服务器重新上线时,我们的客户端无缝地重新连接,没有错过任何一个节拍。 我们不需要编写任何代码,内部重新连接逻辑就发挥了它的魔力。
在服务器端,需要启用容错,并且我相信需要启用服务器-客户端和客户端-服务器心跳(尽管这尚未得到验证)。
希望这可以帮助。
Looks like from our testing that the there are settings on both the server and the client that enable this feature. On the client side, the SetReconnAttemptCount, Delay, Timeout govern the attempts the client tries to reconnect once its aware of a server failover / connection failover.
In our testing, we used a single server environment, listed the server twice in the connection string (using the trick you outlined above) and when that server was taken offline, we received a client notification of the failover process taking affect (we enabled Tibems.SetExceptionOnFTSwitch(true)) and when the server was brought back online, our client seemlessly reconnected without missing a beat. We didn't need to code anything, the internal reconnect logic worked its magic.
On the server side, fault tolerance needs to be enabled and I believe server-client and client-server heartbeats need to be enabled (though this has not yet been verified).
Hope this helps.