C++ quickfix是否自动响应testrequest消息?

C++ quickfix是否自动响应testrequest消息?,c++,quickfix,C++,Quickfix,我有一个quickfix应用程序,它偶尔会根据修复日志发送testrequest消息,而对应的应用程序总是做出响应。tag112设置为等于原始消息的tag112 当它从对方接收到testrequest消息时,fixlog中没有心跳响应的记录,连接被中断 令人烦恼的是,应用程序似乎进入了一个连接失败和失败的循环,直到应用程序重新启动,然后立即重新连接 测试请求被错误地回复的可能性有哪些,或者应用程序的状态会使重启产生影响 编辑 更奇怪的是,这件事。消息日志显示的内容与我在问题中描述的内容无关 事件

我有一个quickfix应用程序,它偶尔会根据修复日志发送testrequest消息,而对应的应用程序总是做出响应。tag112设置为等于原始消息的tag112

当它从对方接收到testrequest消息时,fixlog中没有心跳响应的记录,连接被中断

令人烦恼的是,应用程序似乎进入了一个连接失败和失败的循环,直到应用程序重新启动,然后立即重新连接

测试请求被错误地回复的可能性有哪些,或者应用程序的状态会使重启产生影响

编辑

更奇怪的是,这件事。消息日志显示的内容与我在问题中描述的内容无关

事件日志读取

20160103-21:06:14.807 : Connecting to 127.0.0.1 on port xxxxx
20160103-21:06:14.810 : Initiated logon request
20160103-21:06:14.871 : Received logon response
20160104-00:39:34.003 : IO Error: Unable to flush file /tmp/FIX.4.4-xxxxxxxxxx.body
20160104-00:39:49.670 : IO Error: Unable to write to file /tmp/FIX.4.4-xxxxxxxxxx.body
20160104-00:40:16.671 : Socket Error: Connection reset by peer.
20160104-00:40:16.671 : Disconnecting
20160104-00:40:29.194 : Connecting to 127.0.0.1 on port xxxxx
20160104-00:40:29.195 : IO Error: Cannot seek to end of /tmp/FIX.4.4-xxxxxxxxxx.body
20160104-00:40:29.195 : Initiated logon request
20160104-00:40:39.539 : Timed out waiting for logon response
20160104-00:40:39.539 : Disconnecting
20160104-00:40:39.540 : IO Error: Unable to write to file /tmp/FIX.4.4-xxxxxxxxxx.body
此循环将继续,直到应用程序重新启动。硬盘空间并不短缺,显然没有文件权限问题,或者重启也无济于事——但由于某些原因,quickfix有时会无法写入自己的日志文件

编辑


到目前为止,唯一的线索是日志文件中的最后一条消息与IO错误一致,达到了相同的毫秒。到目前为止,将消息log off/tmp移动似乎已经解决了这个问题——尽管它没有解释为什么会抛出IO错误,或者为什么quickfix无法从中恢复。我猜如果messagestorefactory无法从IO错误中恢复,则需要重新创建它。

Quickfix自动处理testrequest/heartbeat消息; 您可以在事件文件日志中检查testrequest断开连接的原因。可能的原因之一是本地机器和远程交易对手机器上的时差


此外,在会话配置文件中设置ResetOnDisconnect=Y将有助于在异常终止后重新连接会话,而无需重新启动应用程序

您能否在问题中编辑日志的相关部分,显示测试请求、心跳、连接/断开连接等?@TT。我添加了事件日志,事件日志没有告诉我们太多,当然,我指的是带有实际修复消息的日志。将
SOH
字符替换为
|
,以提高可读性。还包括QuickFIX的配置设置。