Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TIBCO EMS重试逻辑_C#_Tibco_Tibco Ems_Ems - Fatal编程技术网

C# TIBCO 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,

我们有一台运行c#windows服务的应用服务器和一台运行TIBCO EMS的服务器。 这两台服务器将在一周中的不同时间重新启动

当应用程序服务器首先恢复联机时,我们喜欢c#windwos服务不断尝试连接到EMS服务器,直到EMS服务器恢复联机。(我已经获得了适用于此场景的重试逻辑)

当应用服务器运行时EMS服务器离线时(例如c#中的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