2013-11-12 8 views
2

Я пытаюсь обрабатывать FIX Reject (MsgType 35=3), но неясно, как получить сообщение, на которое ссылается сообщение FIX Reject ,Обработка FIX Reject: получение сообщения FIX по порядковому номеру в RefSeqNum с использованием QuickFix/J

Отклонение FIX относится к отклоненному сообщению MsgSeqNum, в поле RefSeqNum (тег 45). Однако я не знаю, как получить отклоненное сообщение по его порядковому номеру. Я думаю, что это должно быть возможно, потому что FIX-движок может пересылать сообщения в диапазоне порядковых номеров (в ответ на запрос повторной отправки), поэтому, если двигатель может это сделать, это должно быть I.

Вопрос: как получить сообщение, на которое ссылается сообщение об отказе в поле RefSeqNum?

ответ

3

Вы хотите программно справиться с этим сбоем? Как правило, отклонения нижнего уровня никогда не должны происходить в производственной среде. Я всегда рассматривал их во время тестирования и ручного контроля сообщений, чтобы идентифицировать фактическое сообщение и тег, имеющий проблему.

В любом случае вы можете программно получить сообщение от

  1. первый отрываясь сеанс с использованием, http://quickfixj.org/quickfixj/javadoc/1.5.3/quickfix/Session.html#lookupSession(quickfix.SessionID)

  2. Получить MessageStore, связанные с сессией, используя, http://quickfixj.org/quickfixj/javadoc/1.5.3/quickfix/Session.html#getStore()

  3. Получите фактическое сообщение, используя, http://quickfixj.org/quickfixj/javadoc/1.5.3/quickfix/MemoryStore.html#get(int, int, java.util.Collection)

Обратите внимание, что на шаге 3 вам необходимо будет передать тот же порядковый номер, что и начальный и конечный порядковый номер.