Сбросить порядковый номер в Quickfix
Я работаю с брокером, который говорит мне не сбрасывать порядковые номера при входе в систему, кроме как в начале недели. Однако, если порядковые номера выходят из строя, я должен использовать тег 141 в сообщении для входа в систему для запроса сброса порядкового номера. Очевидно, что я могу проверить отклоненные входы в систему для того, чтобы быть отклоненным из-за слишком низкого порядкового номера, и установить тег в onlogon, но как мне сказать quickfix, что ему нужно сбросить свои порядковые номера? это сложная функция для тестирования, так как проблемы с подключением, которые соответствуют порядковым номерам, происходят не очень часто.
Я использую версию быстрого исправления C++.
1 ответ
Вы можете следить за правильное сообщение в LOGOUT
сообщение. Если это что-то вроде "msgseqnum too low", установите флаг для сброса на следующем LOGON
сообщение. Это из FIX::Application::fromAdmin
реализация.
Тогда в вашем FIX::Application::toAdmin
проверка реализации, если сообщение является LOGON
и есть установленный флаг сброса. Если так, ищите вашу сессию (FIX::Session::lookupSession
) и позвоните setNextSenderMsgSeqNum(1)
а также setNextTargetMsgSeqNum(1)
, Также сбросьте свой флаг:)