MsgSeqNum 序列和不同的会话



例如,我有两个会话的QuickFix/n配置,如下所示:

[DEFAULT]
...
[SESSION]
# Settings for first session
...
[SESSION]
# Settings for second session
...

这些会话应该有不同的MsgSeqNum序列,即如果我Logon消息发送到第一个会话,它应该MsgSeqNum = 1,发送到第二个会话的消息应该LogonMsgSeqNum = 1因为我将消息发送到具有不同序列的不同会话。我说的对吗?

然而,一个相关的问题。是否可以为不同的会话共享一个MsgSeqNum序列?

更新

我正在与第三方FIX服务器集成。他们的支持告诉我我应该发送两条Logon消息(两个会话(,但是当 QuickFix/n 发送它们时,我在第二次Logon响应中看到以下错误:MsgSeqNum too low, expecting 3 but received 1。看起来他们的 FIX 服务器具有这些会话的共享/通用 MsgSeqNum 序列(但我不确定(。

所以,我想用这个问题来澄清 QuickFix/n 如何处理MsgSeqNum序列,因为他们糟糕的文档并没有突出这一刻。

我找到了问题的根源。提供的配置如下所示:

[DEFAULT]
...
[SESSION]
# Settings for first session
ResetOnLogon=Y
...
[SESSION]
# Settings for second session
ResetOnLogon=N
...

第一个会话建立连接,发送Logon消息并重置MsgSeqNum但第二个会话总是发送MsgSeqNum=1因为它不会重置MsgSeqNum并且在客户端和服务器端它们是不同的(我想这是因为我之前运行它时,我的另一个测试项目在服务器端增加了MsgSeqNum3 个(。

因此,格兰特·伯奇迈尔(Grant Birchmeier(在上面的评论中是正确的,MsgSeqNum序列对于不同的会话是不同的。问题出在客户端的配置上。

最新更新