You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用quickfixj的fromApp回调时,外部场地消息多数字段缺失

QuickFixJ 2.3.1 接收外部场地消息被截断问题

我们使用QuickFixJ 2.3.1时遇到外部场地发送的消息被截断的问题,具体表现如下:

日志文件中的完整传入FIX消息

8=FIX.4.4 9=639 35=R 34=3 49=GLMX 52=20250619-14:15:59.494 56=BANK 60=20250619-14:15:59.418 131=GLMXI2375743V1 146=1 55=[N/A] 711=1 311=[N/A] 309=98421MAB2 305=1 246=1.0000000000 462=13 310=REPO 763=Specific 307=XRX 5.5 08/15/28 144A 318=USD 879=29900000.00000000 810=73.24990000 5005=75.12500000 54=1 15=USD 423=9 5020=0 788=2 898=0.00000000 5002=0 916=20250619 917=20250620 919=0 921=22462375.00000000 5003=2 221=NONE 5022=GLMXI2375743 5023=N 5044=0 78=1 79=FUND1 80=29900000.00000000 453=5 448=MLI 447=D 452=1 448=BANK Customer 447=D 452=3 448=chris.milburn+customer@bank.com 447=D 452=37 448=DTCC 447=D 452=10 448=GLMX 447=D 452=22 303=2 537=1 5038=Y 10=152

fromApp回调中收到的截断消息

INFO com.baml.gffrepoet.quickfixj.application.ClientApplicationAdapter: fromApp: Message=8=FIX.4.4 9=101 35=R 34=3 49=GLMX 52=20250619-14:15:59.494 56=BANK 60=20250619-14:15:59.418 131=GLMXI2375743V1 146=1 10=187

当前配置信息

[default]
FileStorePath=logs/GLMXRFQ-DEV/
ConnectionType=initiator
SenderCompID=BANK
StartTime=00:00:00
EndTime=00:00:00
HeartBtInt=30
ReconnectInterval=5
FileLogPath=logs
ResetOnLogon=Y
[session]
BeginString=FIX.4.4
DefaultApplVerID=
TargetCompID=GLMX
SocketConnectPort=4111
UseDataDictionary=Y
DataDictionary=FIX44.xml
SocketConnectHost=199.43.71.118
ValidateFieldsOutOfOrder=N
ValidateFieldsHaveValues=N
ValidateUserDefinedFields=N
ValidateUnorderedGroupFields=N
ValidateIncomingMessage=N
DefaultApplVerID=FIX.4.4
SocketUseSSL=Y
SocketTrustStore=/app_data/security/cacerts.truststore
SocketTrustStorePassword=changeit
LogonTag=553=BANK
LogonTag1=554=thepassword

问题分析与解决方向

从日志对比来看,消息解析在Tag146之后直接终止,后续字段全部丢失,可从以下几个方向排查:

  • 数据字典组定义问题:检查FIX44.xml中Tag146(NoRelatedSym)的组结构是否完整,子字段是否全部正确声明。若组定义缺失,QuickFixJ会提前终止解析。
  • 临时关闭数据字典校验:将配置中UseDataDictionary改为N,验证是否能接收完整消息。若恢复正常,说明问题出在数据字典的定义上。
  • 字段格式兼容性:检查原始消息中Tag307的值包含空格,确认数据字典中该字段是否被定义为字符串类型,错误的类型定义会导致解析中断。
  • 版本升级:QuickFixJ 2.3.1存在已知的组解析bug,尝试升级到2.3.6及以上稳定版本,验证是否修复该问题。

内容的提问来源于stack exchange,提问作者Chris Milburn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:52:41