我试图找到检测连接丢失的好方法。

我的适配器基于的一个例子实施为修正::应用。它使用一个插座引发剂连接到固定网关。

当我拔掉它需要大约30秒钟,以修复互联网::被激发的应用的方法onLogout。这似乎是一些基础类会知道,有与插座有问题要早得多。是否有一个快速的方式把勾成这样?

有帮助吗?

解决方案

解决这个的最好办法很可能会降低你的心跳间隔让你知道越快。我不知道,火TCP连接的丢失任何消息,但我不认为QuickFix的要么监听OS事件。虽然,它可能会流过fromAdmin事件,如果有这样的消息。

你发布到QuickFix的DL你的问题?

其他提示

这有可能是你使用时,TCP断开,或者它比其他onLogout东西回调不回调修复引擎。 由于您使用的修复,我猜想它强制注销由于错过了心跳。

快速的方法是寻找到的代码,并检查其中套接字关闭正在处理,当发生这种情况,执行什么样的路径。

TCP本身自带称为 SO_KEEPALIVE 天然心跳机制。问题在于,对于此心跳的默认间隔可以是高达2小时。这种配置在操作系统级别。所以,从理论上讲,你可以打开SO_KEEPALIVE,配置在操作系统层次合理的心跳间隔和快乐。然而,因为说这是非常依赖于操作系统的,大多数应用程序选择在应用层实现心跳,和FIX也不例外。降低你FIX心跳间隔是去这里的路,特别是如果你是靠取消上断开并未被发现连接丢失的额外秒会导致不必要的顺序执行。任何修复引擎之上实现的FIX网关应该支持心跳配置外的开箱。举个例子在 CoralGateway 看看。 (声明:我的CoralGateway的开发者之一)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top