Я использую quickfix 1.13.3, перекомпилированный с ODBC, и у меня странное поведение на моих акцепторах (два акцептора на разных машинах используют одну и ту же базу данных ODBC и включены для горячего переключения при сбое).
Моя ежедневная сессия настроена с помощью:
RefreshOnLogon=Y
StartTime=00:02:00
EndTime=23:58:00
PersistMessages=Y
и необходимые настройки Odbc.
В 23:54 инициатор отправляет Logout с MsgSeqNum = 1711, мой получатель быстрых исправлений отвечает Logout MsgSeqNum = 1711, поэтому никаких проблем нет.
В 00:05:16 инициатор отправляет Logon с MsgSeqNum = 2, но мой получатель быстрого исправления отвечает Logout MsgSeqNum = 1712!
В 00:05:18 инициатор повторяет попытку с Logon и MsgSeqNumm = 4, и на этот раз мой получатель быстрого исправления отвечает Logon MsgSeqNum = 1
Думая, что, возможно, в таблице "сеансы" ODBC для входящих_секундов и исходящих_данных не были должным образом сброшены ODBC, я даже пытался принудительно выполнить сброс вручную в 00:00, но напрасно я все еще получаю то же поведение.
В настоящий момент я предполагаю, что quickfix с этой конфигурацией по-прежнему сопоставляет запрос на вход со вчерашним сеансом, что приводит к выходу из системы со вчерашним порядковым номером ....
С такими же настройками StartTime
, EndTime
, 1 акцептор (вместо двух), FileStore
и без RefreshOnLogon
(поскольку у меня был только 1 акцептор), он использовался для работы с исправлением 1.12.4.
Я также пытался с RefreshOnLogon=N
, но проблема остается той же ... seqnums не сбрасываются должным образом в полночь.
Есть идеи?
Большое спасибо,