C# TIBCO EMS重试逻辑
我们有一台运行c#windows服务的应用服务器和一台运行TIBCO EMS的服务器。 这两台服务器将在一周中的不同时间重新启动 当应用程序服务器首先恢复联机时,我们喜欢c#windwos服务不断尝试连接到EMS服务器,直到EMS服务器恢复联机。(我已经获得了适用于此场景的重试逻辑) 当应用服务器运行时EMS服务器离线时(例如c#中的EMS客户端正在侦听队列中的传入消息),对于这种情况,执行重试逻辑的最佳方法是什么?是否会立即引发异常C# TIBCO EMS重试逻辑,c#,tibco,tibco-ems,ems,C#,Tibco,Tibco Ems,Ems,我们有一台运行c#windows服务的应用服务器和一台运行TIBCO EMS的服务器。 这两台服务器将在一周中的不同时间重新启动 当应用程序服务器首先恢复联机时,我们喜欢c#windwos服务不断尝试连接到EMS服务器,直到EMS服务器恢复联机。(我已经获得了适用于此场景的重试逻辑) 当应用服务器运行时EMS服务器离线时(例如c#中的EMS客户端正在侦听队列中的传入消息),对于这种情况,执行重试逻辑的最佳方法是什么?是否会立即引发异常 谢谢如果您的Windows服务仅用于连接TIBCO EMS,
谢谢如果您的
Windows服务
仅用于连接TIBCO EMS
,则您可以向其添加依赖项。然后,每当停止/重新启动TIBCO EMS
服务时,您的Windows服务将分别停止/重新启动。缺点是当您启动TIBCO EMS
时,您的Windows服务将不会自动调用get start(我不确定您是否可以将两个服务配对以解决此问题)
否则,您可以将.NET中的一个计时器类(例如)添加到您的类中,该类可以连接到TIBCO EMS。然后在连接关闭时启动计时器,并在连接打开后停止计时器。计时器可以在指定的时间间隔后尝试连接。如何获取连接关闭通知?
我看到conneciton对象有异常Listner和异常Hanlder。但是,如果我在它们都运行时关闭网卡,我就无法在c#中捕捉到它们中的任何一个
它们之间的区别是什么?您应该尝试将下面KB中的属性添加到tibemsd.conf中,并进行检查
例如:
client_heartbeat_server=10
client_timeout_server_connection=35
server_heartbeat_client=10
server_timeout_client_connection=35