Сбросить порядковый номер в 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), Также сбросьте свой флаг:)

Другие вопросы по тегам