MsgSeqNum序列和不同的会话

问题描述 投票:1回答:1

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

[DEFAULT]
...

[SESSION]
# Settings for first session
...

[SESSION]
# Settings for second session
...

这些会话应该具有不同的MsgSeqNum顺序,即,如果我向第一会话发送Logon消息,则它应该具有MsgSeqNum = 1,而向第二会话发送的Logon消息应该具有MsgSeqNum = 1,因为我向不同的会话发送了消息有不同的顺序。我说的对吗?

还有一个相关的问题。是否可以为一个不同的会话使用一个共享的MsgSeqNum序列?

更新

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

所以,我想用这个问题来说明QuickFix / n如何与MsgSeqNum序列一起使用,因为它们的文档不佳并不能突出显示这一时刻。

quickfix fix-protocol quickfixn
1个回答
0
投票

我已经找到问题的根源。提供的配置如下:

[DEFAULT]
...

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

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

第一个会话建立连接,发送Logon消息并重置MsgSeqNum,但是第二个会话总是发送MsgSeqNum=1,因为它没有重置MsgSeqNum,并且在客户端和服务器端它们是不同的(我想这是之所以发生,是因为我之前在服务器端将其他测试项目在服务器端最多增加了MsgSeqNum到3)。

因此,以上评论中的Grant Birchmeier是正确的,并且MsgSeqNum序列对于不同的会话是不同的。问题出在客户端的配置中。

© www.soinside.com 2019 - 2024. All rights reserved.