Quickfix 1.13.3 - 使用ODBC存储在StartTime中未正确重置SeqNum

时间:2010-10-11 11:23:09

标签: quickfix fix-protocol

我正在使用使用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仍然匹配昨天会话的登录请求,导致使用昨天的序列号注销....

使用相同的StartTimeEndTime,1个接受者(而不是2个),FileStore和无RefreshOnLogon设置(因为我只有1个接受者)使用quickfix 1.12.4。

我也试过RefreshOnLogon=N,但问题仍然存在... seqnums在午夜没有正确重置。

有什么想法吗?

非常感谢,

2 个答案:

答案 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