在 quickfix 中重置序列号
reset sequence number in quickfix
我正在与经纪人合作,经纪人告诉我不要在登录时重置序列号,除非是在本周初。
但是,如果序列号乱七八糟,我应该在登录消息中使用标记 141 来请求重置序列号。显然我可以检查被拒绝的登录是否因为序列号太低而被拒绝,并在 onlogon 中设置标签,但是我如何告诉 quickfix 它需要重置它的序列号?这是一个很难测试的功能,因为影响序列号的连接问题并不经常发生。
我正在使用 C++ 版本的 quickfix。
您可以在 LOGOUT
消息中监视正确的消息。如果它类似于 "msgseqnum too low" 设置一个标志以在下一条 LOGON
消息上重置。这是来自 FIX::Application::fromAdmin
实施。
然后在您的 FIX::Application::toAdmin
实施中检查消息是否为 LOGON
并且是否设置了重置标志。如果是这样,请查找您的会话 (FIX::Session::lookupSession
) 并调用 setNextSenderMsgSeqNum(1)
和 setNextTargetMsgSeqNum(1)
。同时重置你的旗帜:)
我正在与经纪人合作,经纪人告诉我不要在登录时重置序列号,除非是在本周初。 但是,如果序列号乱七八糟,我应该在登录消息中使用标记 141 来请求重置序列号。显然我可以检查被拒绝的登录是否因为序列号太低而被拒绝,并在 onlogon 中设置标签,但是我如何告诉 quickfix 它需要重置它的序列号?这是一个很难测试的功能,因为影响序列号的连接问题并不经常发生。
我正在使用 C++ 版本的 quickfix。
您可以在 LOGOUT
消息中监视正确的消息。如果它类似于 "msgseqnum too low" 设置一个标志以在下一条 LOGON
消息上重置。这是来自 FIX::Application::fromAdmin
实施。
然后在您的 FIX::Application::toAdmin
实施中检查消息是否为 LOGON
并且是否设置了重置标志。如果是这样,请查找您的会话 (FIX::Session::lookupSession
) 并调用 setNextSenderMsgSeqNum(1)
和 setNextTargetMsgSeqNum(1)
。同时重置你的旗帜:)