Quickfix Python:设置NonStopSession=Y时省略StartTime/EndTime报错求解决
QuickFix 非间断会话配置冲突解决
问题背景
为对接不重置序列号的交易对手,需启用NonStopSession=Y(避免本地每日自动重置出站序列号为1导致对方拒收)。但该参数与StartTime/EndTime不兼容,移除这两个参数后启动报错;尝试设置ResetOnLogon=N、ValidateSequenceNumbers=N均未解决问题。
可行解决方案
用无效时间占位符规避必填校验
部分QuickFix版本会强制检查StartTime/EndTime是否存在,此时可设置不会触发会话启停的时间值,让NonStopSession=Y覆盖其逻辑:StartTime=00:00:00 EndTime=23:59:59 NonStopSession=Y确保序列号持久化存储
启用会话状态持久化而非内存存储,保证序列号跨启动保留:FileStorePath=./session_store # 用文件存储会话状态也可配置数据库存储(如MySQL、PostgreSQL),具体参数参考对应版本QuickFix文档。
补充配置避免断开连接时重置序列号
在现有配置基础上添加:ResetOnLogout=N ResetOnDisconnect=N确保登出或断开连接时不重置序列号,配合
NonStopSession=Y维持会话连续性。排查版本兼容性
若上述方案无效,检查QuickFix版本——旧版本可能存在NonStopSession参数的兼容性问题,升级到最新稳定版可解决部分强制校验逻辑冲突。
内容的提问来源于stack exchange,提问作者Jun Han Tan
相关产品推荐
相关产品推荐

