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

发布于 2024-09-27 06:45:43 字数 965 浏览 1 评论 0原文

我正在使用用 ODBC 重新编译的 QuickFix 1.13.3,并且我的接受器有一个奇怪的行为(不同计算机上的两个接受器共享相同的 ODBC 数据库并启用热故障转移)。 我的日常会话设置为:

RefreshOnLogon=Y
StartTime=00:02:00
EndTime=23:58:00
PersistMessages=Y

以及必要的 Odbc 设置。

在 23:54,发起方发送了一个带有 MsgSeqNum = 1711 的 Logout,我的 QuickFix 接受器以 Logout MsgSeqNum = 1711 进行响应,所以没有问题。

在 00:05:16,发起者发送了一个带有 MsgSeqNum = 2 的 Logon 消息,但是我的 QuickFix 接受者响应 Logout MsgSeqNum = 1712 !

在 00:05:18,启动器重试 Logon 且 MsgSeqNumm = 4,这次,我的 QuickFix 接受器以 Logon MsgSeqNum = 1 进行响应

认为也许在表“sessions”中,传入_seqnum 和传出_seqnum 未正确重置ODBC,我什至尝试在 00:00 手动强制重置,但徒劳无功,我仍然得到相同的行为。

我目前的猜测是,具有此配置的快速修复仍然与昨天会话的登录请求相匹配,这会导致使用昨天的序列号注销......

具有相同的 StartTimeEndTime、1 个接受器(而不是两个)、FileStore,并且没有 RefreshOnLogon 设置(因为我只有 1 个接受器),它曾经与 Quickfix 1.12.4 一起使用。

我也尝试过使用 RefreshOnLogon=N 但问题仍然相同...... seqnums 在午夜没有正确重置。

有什么想法吗?

非常感谢,

I am using quickfix 1.13.3 recompiled with ODBC and I have a strange behavior on my acceptors (two acceptors on different machines sharing the same ODBC database and enabled for hot failover).
My daily session is setup with:

RefreshOnLogon=Y
StartTime=00:02:00
EndTime=23:58:00
PersistMessages=Y

and the necessary Odbc Settings.

At 23:54, the initiator sends a Logout with MsgSeqNum = 1711, my quickfix acceptor responds with Logout MsgSeqNum = 1711, so no problem there.

At 00:05:16, the initiator sends a Logon with MsgSeqNum = 2, but my quickfix acceptor responds with Logout MsgSeqNum = 1712 !

At 00:05:18, the initiator retries with Logon and MsgSeqNumm = 4, and this time, my quickfix acceptor responds with Logon MsgSeqNum = 1

Thinking that maybe, in the table "sessions", the incoming_seqnum and outgoing_seqnum were not properly reset by ODBC, I even tried to force a reset manually at 00:00 but in vain, I still get the same behavior.

My guess at the moment is that quickfix with this configuration still matches the Logon request against the yesterday session which results in the logout with the yesterday sequence number....

With the same StartTime, EndTime, 1 acceptor (instead of two), FileStore, and no RefreshOnLogon setting (because I had only 1 acceptor) it used to work with quickfix 1.12.4.

I also tried with RefreshOnLogon=N but the problem remains the same... seqnums are not properly reset at midnight.

Any ideas?

Many thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深海不蓝 2024-10-04 06:45:43

经过多次尝试不同的设置,我最终回滚到使用 ODBC 重新编译的 1.12.4。
使用相同的设置,旧库可以正常工作,并且 seqnums 在 00:02:00 正确重置。

RefreshOnLogon=Y
StartTime=00:02:00
EndTime=23:58:00
PersistMessages=Y

After many attempts with the different settings, I finally rollbacked to 1.12.4 recompiled with ODBC.
With the same settings, the old library works properly and seqnums are properly reset at 00:02:00.

RefreshOnLogon=Y
StartTime=00:02:00
EndTime=23:58:00
PersistMessages=Y
枫以 2024-10-04 06:45:43

您的配置文件中是否设置了 UseLocalTime ?如果是这样,您应该注意到 QuickFIX 在 1.12.4 之后破坏了它。破坏它的修订版是 2160,正如我在这个错误上所指出的: http://sourceforge.net/tracker/?func=detail&aid=3023908&group_id=37535&atid=1126912

Do you have UseLocalTime set in your config file? If so, you should note that QuickFIX broke it after 1.12.4. The revision that broke it was 2160, as I note on this bug: http://sourceforge.net/tracker/?func=detail&aid=3023908&group_id=37535&atid=1126912

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文