在快速修复中重置序列号

reset sequence number in quickfix

本文关键字:序列号      更新时间:2023-10-16

我正在与一个代理合作,该代理告诉我不要在登录时重置序列号,除非在一周的开始。但是,如果序列号不正常,我应该在登录消息中使用标记141来请求序列号重置。显然,我可以检查被拒绝的登录因序列号太低而被拒绝,并在登录中设置标签,但我如何告诉快速修复它需要重置它的序列号?这是一个很难测试的特性,因为不经常发生序列号的连接问题。

我用的是c++版本的quickfix

您可以监视LOGOUT消息中的正确消息。如果是像"msgseqnum太低"这样的情况,设置一个标志,在下一个LOGON消息上重置。这是FIX::Application::fromAdmin的实现。

然后在您的FIX::Application::toAdmin实现检查消息是否为LOGON并且有重置标志集。如果是,请查找会话(FIX::Session::lookupSession)并调用setNextSenderMsgSeqNum(1)setNextTargetMsgSeqNum(1)。也重置你的标志:)