如何解决QuickFixJ中的“MsgSeqNum太低”?

时间:2018-03-05 09:58:09

标签: java quickfix quickfixj

我是一个接受者,无法控制发起者。 每当发起人连接我就会得到这个

58=MsgSeqNum too low, expecting x but received y

到目前为止尝试了ResetOnLogon = Y,但它没有帮助。可能发起人没有匹配的配置。

接下来的想法是解析字段58并从中设置SeqNum,有没有办法设置SeqNum? (最好不要接触.seqnums文件)

编辑:我找到了一种改变序列号的方法,但它似乎不起作用,仍然得到相同的消息

session.setNextSenderMsgSeqNum(x);
session.setNextTargetMsgSeqNum(x);

2 个答案:

答案 0 :(得分:0)

客户端和服务器之间的序列号必须是同步的。在您的情况下,即使您重置序列号,您也会收到相同的错误,因为客户端将发送一个更大的序列号。通常的做法是客户端和服务器都重置协议上的序列号(登录,每天或发送141 = Y等)。

答案 1 :(得分:-1)

查看SequenceReset消息。发送应用程序使用序列重置消息来重置对方的输入序列号。