我的修复引擎一直拒绝消息,我希望有人能帮助我找出原因…我收到以下示例消息:
8=FIXT.1.1 9=518 35=AE 34=4 1128=8 49=XXXXXXX 56=YYYYYYY 52=20130322-17:58:37 552=1 54=1 37=Z00097H4ON 11=NOREF 826=0 78=1 79=NOT SPECIFIED 80=100000.000000 5967=129776.520000 453=5 448=BCART6 452=3 447=D 448=BARX 452=1 447=D 448=BARX 452=16 447=D 448=bcart6 452=11 447=D 448=ABCDEFGHI 452=12 447=D 571=6611540 150=F 17=Z00097H4ON 32=100000.000000 38=100000.000000 15=EUR 1056=129776.520000 31=1.2977652 194=1.298120 195=-3.5480 64=20130409 63=W2 60=20130322-17:26:50 75=20130322 1057=Y 460=4 167=FOR 65=OR 55=EUR/USD 10=121
8=FIXT.1.1 9=124 35=3 34=4 49=XXXXXXX 52=20130322-17:58:37.917 56=YYYYYYY 45=4 58=Tag appears more than once 371=448 372=AE 373=13 10=216
但是你可以看到它被快速修复引擎拒绝了。我正在使用5.0sp1数据字典,并在配置文件中进行了配置:
[DEFAULT]
ConnectionType=initiator
HeartBtInt=30
ReconnectInterval=10
SocketReuseAddress=Y
FileStorePath=D:XXXInterfaceReutersStore
FileLogPath=D:XXXInterfaceReutersLog
[SESSION]
BeginString = FIXT.1.1
SenderCompID = XXXXX
TargetCompID= YYYYY
DefaultApplVerId = FIX.5.0
UseDataDictionary=Y
AppDataDictionary=FIX50SP1.xml
StartDay=sunday
StartTime=20:55:00
EndTime=06:05:00
EndDay=saturday
SocketConnectHost= A.B.C.D
SocketConnectPort= 123
有人知道为什么引擎会拒绝这个消息吗?我知道快速修复通常能够处理重复组的消息,这是一个配置的事情吗?任何帮助将非常感激!
您的信息似乎是有序的。试着把它放到你的配置文件中。
ValidateFieldsOutOfOrder=N
Quickfix默认将其设置为Y,并且存储选项卡和字段值的底层结构无法看到之前的计数。
作为旁注,总是检查这些字段。他们应该指出问题的根源。
58=Tag appears more than once
371=448
也许这是瞎猜的,但我在使用5.0sp2字典时遇到了类似的问题。我使用从库SVN存储库编译的快速修复库的更新版本来解决这个问题。如果我没记错的话,就是这个bug。
似乎quickfix库已经很长时间没有更新了,对于更新版本的fix,我建议您使用repo的"trunk"
我有同样的问题,我通过调整我的数据字典来解决它,就像下面的消息AE TradeCaptureReport