我正在使用使用ODBC重新编译的quickfix 1.13.3,我的接受器上有一个奇怪的行为(共享相同ODBC数据库并启用热故障转移的不同机器上的两个接收器)。 我的每日会话设置为:
RefreshOnLogon=Y
StartTime=00:02:00
EndTime=23:58:00
PersistMessages=Y
和必要的Odbc设置。
在23:54,发起人发送一个Logout,其中MsgSeqNum = 1711,我的quickfix接受者以Logout MsgSeqNum = 1711响应,所以没问题。
在00:05:16,发起人发送一个MsgSeqNum = 2的登录,但我的quickfix接受者以Logout MsgSeqNum = 1712响应!
在00:05:18,启动器重试Logon和MsgSeqNumm = 4,这次,我的quickfix接受器响应Logon MsgSeqNum = 1
认为可能在表“sessions”中,incoming_seqnum和outgoing_seqnum没有被ODBC正确重置,我甚至试图在00:00手动强制重置但是徒劳无功,我仍然得到相同的行为。
我现在的猜测是,使用此配置的quickfix仍然匹配昨天会话的登录请求,导致使用昨天的序列号注销....
使用相同的StartTime
,EndTime
,1个接受者(而不是2个),FileStore
和无RefreshOnLogon
设置(因为我只有1个接受者)使用quickfix 1.12.4。
我也试过RefreshOnLogon=N
,但问题仍然存在... seqnums在午夜没有正确重置。
有什么想法吗?
非常感谢,
答案 0 :(得分:1)
经过多次尝试使用不同的设置后,我终于回滚到使用ODBC重新编译的1.12.4。 使用相同的设置,旧库正常工作,并在00:02:00正确重置seqnums。
RefreshOnLogon=Y
StartTime=00:02:00
EndTime=23:58:00
PersistMessages=Y
答案 1 :(得分:-1)
您是否在配置文件中设置了UseLocalTime?如果是这样,你应该注意到QuickFIX在1.12.4之后打破了它。打破它的修订版是2160,因为我注意到这个错误:http://sourceforge.net/tracker/?func=detail&aid=3023908&group_id=37535&atid=1126912