c#-TIBCO EMS服务器尝试故障转移时客户端应怎么做?
作者:互联网
TIBCO EMS用户指南(第292页)说:
The backup server will work indefinitely to either A) become the
primary server or B) reconnect to the primary server. It also says
clients may receive fail-over notification when the switch is successful (see also TIBCO EMS .NET reference pg 220).
这些事实使我有些疑问…
>服务器尝试故障转移/重新连接时,客户端会发生什么类型的错误?
>客户的适当回应是什么?
>从ConnectionFactory获取新的Connection对象,直到一个可以工作?
>等待故障转移通知? (当前是否已修复当前的Connection实例?还是我需要获取一个新实例?)
我希望情况清楚,任何相关信息或建议也将不胜感激.
解决方法:
我至少可以回答上面的#1.
如果启用了Tibems.SetExceptionOnFTSwitch(true);并且已经设置了一个异常处理程序来捕获服务器发送给客户端的消息,您将看到以下内容:
对于单服务器,非容错连接失败:
“连接已终止”.
对于容错连接失败:
“连接已将容错切换到”
如果尝试在连接断开时进行发布,则会引发TIBCO.EMS.IllegalStateException,并显示“生产者已关闭”消息.
对于上面的#2,我认为答案是允许EMS库尽可能多地处理.一旦我们使EMS重新连接功能正常工作,它就会优雅地尝试重新连接,直到服务器再次可用,并且一旦重新连接,就好像从来没有问题一样.唯一的麻烦可能是如果您尝试在ems连接恢复之前发布消息.这是异常处理程序进入的地方.一旦通知您处于故障转移模式,您就可以在发布者端调整异常处理以抑制错误,直到连接恢复.我不知道的是,如何知道何时用尽所有重新连接尝试.
无论如何,在EMS方面,好像我们两个世界紧密相关-希望我们的发现(基于您对我的问题的评论)对您有帮助.
标签:tibco,tibco-ems,ems,c 来源: https://codeday.me/bug/20191108/2004868.html