Отключение инициатора quickfixj из-за слишком низкого значения seqnum - PullRequest
0 голосов
/ 13 июня 2018

Получение инициатора quickfixj Отключение: Обнаружено END_OF_STREAM при попытке входа в получатель.В качестве акцептора мы используем движок исправлений поставщика.и ответ от акцептора о том, что запрос на вход для xxxx не был принят, входящий слишком мал, ожидайте 305, получил 27.

Я прочитал документацию по быстрому исправлению, но не получил именно то, что является правильным решением для порядкового номеранесоответствие.Я понимаю, что, если я отсоединен, мой инициатор отправит 35 = 4 для повторной отправки с seqnum стороны инициатора с просьбой, чтобы получатель повторно отправил сообщения и заполнил пробел.Но в каком случае, если инициатор отправляет более низкую последовательность, она будет отклонена получателем и отклонит соединение?И какова правильная процедура, чтобы справиться с такого рода отказом и восстановить соединение?Чтобы не потерять ни одного сообщения, как обе стороны должны сделать сброс и заполнить пробел?В случае разрыва между инициатором и получателем, каково рекомендуемое решение для синхронизации сообщений и их потери?

1 Ответ

0 голосов
/ 13 июня 2018

В соответствии с логикой по умолчанию в QuickfixJ: QuickfixJ управляет двумя порядковыми номерами: ожидаемыйSeqNum для получения (targetSeqNum) и nextSeqNumber для отправки.

Проверка следующего ожидаемого целевого SeqNum по отношению к полученному SeqNum. Если обнаружено несоответствие,примените следующую логику:

  • если ниже, чем ожидалось SeqNum, выйдите из системы
  • , если выше, отправьте запрос на повторную отправку

В вашем случае получено было меньше, чеможидается, поэтому он отключается.

Причина получения более высокого, чем ожидалось SeqNum: Receiver пропускает некоторые сообщения, поэтому это может быть нормальный сценарий.

Причина более низкого, чем ожидалось SeqNum (Ваш случай): Одиниз контрагентов сбрасывает свой порядковый номер, который не ожидается, он должен быть согласован обоими контрагентами.

В обычном сценарии, когда вы пропустите сообщение, вы получите большее число, и оно будет управляться QuickFixJ.

...