当快速修复程序启动器重新连接到startTime(在配置中定义)时,它将删除序列号为文件的文件,但未将ResetSeqNumFlag设置为Y,并且服务器以文本为“ seq msg number”的Logout消息答复低 ...”
有没有一种方法只能为此行为设置ResetSeqNumFlag = Y?我不想在每次登录时重设顺序。

最佳答案

这似乎是一个QuickFIX / J怪癖(有些人可能会认为它是一个错误)。如果ResetOnLogon = N,则在会话开始时间触发登录时不发送ResetSeqNumFlag = Y。如果ResetOnLogon = Y,则在每次登录时发送ResetSeqNumFlag = Y。我认为这实际上不是什么大问题,因为FIX会话的参与者通常在会话结束后(逻辑上在结束时间结束,而不是断开连接)在本地重置其序列号。

如果要稍微修改源代码以实现此行为,则可以修改quickfix.Session next()方法。您可以添加一个指示会话已重新启动的本地标志(按照由checkSessionTime()确定的计划)。将该标志传递给generateLogon(),并且该方法将使用它来确定何时发送ResetSeqNumFlag = Y,而不管ResetOnLogon配置如何。

10-01 00:14