当quickfix引发在重新连接startTime(在配置中定义),它删除了与序列号文件,但不设置ResetSeqNumFlag到Y,服务器与回复Logout文本消息"序列号味精低......"有没有一种方法来设置ResetSeqNumFlag = Y只为这种行为?我不想在每次登录时重置序列.
Fra*_*ith 10
这似乎是一个QuickFIX/J怪癖(有些人可能认为它是一个bug).如果ResetOnLogon = N,则在会话开始时间触发登录时不会发送ResetSeqNumFlag = Y. 如果ResetOnLogon = Y,则每次登录时都会发送ResetSeqNumFlag = Y. 我认为这在实践中不是一个大问题,因为FIX会话中的参与者通常在会话结束后在本地重置其序列号(逻辑上在结束时间结束,而不是连接断开).
如果要稍微修改源代码以实现此行为,则需要修改quickfix.Session next()方法.您可以添加一个本地标志,指示会话已重新启动(根据checkSessionTime()确定的计划).将该标志传递给generateLogon(),该方法将使用它来确定何时发送ResetSeqNumFlag = Y,而不管ResetOnLogon配置如何.
| 归档时间: |
|
| 查看次数: |
10047 次 |
| 最近记录: |