我确实看到以前有人问过这个问题,但我还没有看到答案。有没有办法重播 quickfix 日志文件?我的应用程序启动了会话,接收数据,quickfix 记录数据,我的应用程序崩溃。当我重新启动时,我想简单地重播日志文件中的所有内容。可以这样做吗?
或者,如果没有,是否有人有示例说明如何以编程方式请求重新发送所有会话消息或将接收序列号重置为 1?任何帮助,将不胜感激。
我确实看到以前有人问过这个问题,但我还没有看到答案。有没有办法重播 quickfix 日志文件?我的应用程序启动了会话,接收数据,quickfix 记录数据,我的应用程序崩溃。当我重新启动时,我想简单地重播日志文件中的所有内容。可以这样做吗?
或者,如果没有,是否有人有示例说明如何以编程方式请求重新发送所有会话消息或将接收序列号重置为 1?任何帮助,将不胜感激。
不,不是。
FIX 是一种双向通信协议。您不能只“重播”一侧;这真的没有意义。
这就像说您希望爱丽丝重新开始与鲍勃的对话,但爱丽丝必须从她之前所说的文字记录中读出她的台词。您无法保证 Bob 会说出他之前所说的话,并且 Bob 可能只是感到困惑。
现在,如果您正在谈论某种测试工具,其中一方面是“播放”预定的数据......好吧,您应该在您的问题中更加具体。也就是说,QuickFIX 不提供执行此类操作的功能,并且并不真正适合执行此操作。您最好编写一个将这些消息写入原始套接字的独立工具。(我的公司实际上已经编写了这样的测试工具。)
关于序列号,请检查“ ResetOn<XXX>
”配置设置。您可能需要 ResetOnLogon 等。(确保您的发起人的 seq# 策略与您的交易对手的相同,否则您将遇到问题。)
如果您认为必须以编程方式重置您的序列号,那么您可能做错了什么。四年的 QF 邮件列表教会了我这一点。我从未见过任何人合法地需要这样做。
确保配置文件中的设置设置为在登录时不重置。当您在崩溃后重新连接时,您将自动重新发送所有错过的消息。