Я вижу, что об этом уже спрашивали, но пока не вижу ответа.
Есть ли способ воспроизвести файл журнала быстрого исправления? Мое приложение инициировало сеанс, получает данные, быстрое исправление регистрирует данные, мое приложение вылетает. При перезапуске я хочу просто воспроизвести все в файле журнала. Это может быть сделано?
Или, если нет, есть ли у кого-нибудь пример того, как программно запросить повторную отправку всех сообщений сеанса или сбросить приемный seq # до 1?
Любая помощь будет оценена.
Нет, не совсем.
FIX — это протокол двусторонней связи. Вы не можете просто «переиграть» одну сторону; это на самом деле не имеет смысла.
Это все равно что сказать, что вы хотите, чтобы Алиса возобновила разговор с Бобом, но Алиса должна прочитать ее строки из стенограммы того, что она говорила раньше. У вас нет гарантии, что Боб скажет то, что он сказал раньше, и Боб может быть просто сбит с толку.
Теперь, если вы говорите о каком-то инструменте для тестирования, где одна сторона «воспроизводит» данные, которые предопределены … ну, вы должны быть более конкретны в своем вопросе. Тем не менее, QuickFIX не предоставляет никаких функций для такой вещи, и на самом деле не делает этого. Вам лучше написать отдельный инструмент, который записывает эти сообщения в сырой сокет. (Моя фирма фактически написала такой тестовый инструмент.)
Что касается порядковых номеров, отметьтеResetOn<XXX>
«настройки конфигурации. Возможно, вам нужен ResetOnLogon или тому подобное. (Убедитесь, что политика seq # вашего инициатора такая же, как и у вашего контрагента, иначе у вас будут проблемы.)
Если вы думаете, что вам нужно программно сбросить ваш порядковый номер, вы, вероятно, делаете что-то не так. Четыре года в списках рассылки QF научили меня этому. Я никогда не видел никого законно нужно сделать это.
Убедитесь, что ваши настройки в файле конфигурации не сбрасываются при входе в систему. Когда вы восстанавливаете соединение после сбоя, вы автоматически делаете повторную отправку всех пропущенных сообщений.