Что такое контракт на обмен сообщениями QuickFIX / J? Получу ли я гарантию доставки заказа?

Aug 18 2020

Я только начинаю работать с QuickFIX / J. Одна вещь, которую я смущаю, читая их документы, заключается в том, что именно контракт обмена сообщениями обеспечивается реализацией QuickFIX протокола FIX?

В частности, я знаю, что FIX имеет встроенный механизм на основе порядковых номеров, который реализации могут использовать для обработки неупорядоченных, отсутствующих или дублированных сообщений. Но есть ли в QuickFIX / J уже встроенная возможность? Могу ли я предположить, что приложение, использующее QuickFIX / J для связи с механизмом исправлений:

  1. Сообщения, доставляемые в мое приложение из QuickFIX / J, всегда в порядке.

  2. Нет пропущенных сообщений (QuickFIX / J автоматически обработает повторный запрос)

  3. Нет дублирующихся сообщений (QuickFIX / J может посмотреть полученный порядковый номер и отфильтровать возможное дублирование)

  4. Если двигатель удаленного исправления выйдет из строя, я автоматически подключусь с последним известным порядковым номером, когда двигатель вернется

  5. Если мое приложение выйдет из строя, сможет ли оно при перезапуске автоматически возобновить сеанс с предыдущего известного порядкового номера? (например, будет ли какой-либо нестандартный механизм сохранения порядковых номеров?)

Ответы

1 ChristophJohn Aug 18 2020 at 18:15

QuickFIX / J реализует протокол сеанса FIX, поэтому он обрабатывает все вещи на уровне сеанса (соединения, порядковые номера, ...) за вас.

  1. Да, но могут быть дубликаты, см. 3.
  2. Да.
  3. Нет, на самом деле QFJ по-прежнему будет пересылать возможные дубликаты в ваше приложение, потому что вы все равно можете их обрабатывать. Вам нужно отфильтровать их самостоятельно, если хотите, на основе 43/PossDupFlag.
  4. Да.
  5. Да. QFJ имеет некоторые из коробки инерционности механизмов , как FileStore, JdbcStore, MemoryStore. Вы также можете реализовать свои собственные, Storeесли вам нужно.

Вот ссылка на то, как создать приложение QFJ, если вы еще не нашли его: https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application