QuickFix Trouble - Повторяющиеся группы
Мой механизм исправлений продолжает отклонять сообщения, и я надеялся, что кто-нибудь может помочь мне понять, почему... Я получаю следующий пример сообщения:
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
Но, как вы можете видеть, он был отклонен движком QuickFix. Я использую словарь данных 5.0sp1 и настроил его в моем конфигурационном файле:
[DEFAULT]
ConnectionType=initiator
HeartBtInt=30
ReconnectInterval=10
SocketReuseAddress=Y
FileStorePath=D:\XXX\Interface\ReutersStore
FileLogPath=D:\XXX\Interface\ReutersLog
[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
Кто-нибудь знает, почему Двигатель будет отклонять это сообщение? Я знаю, что quickfix обычно способен обрабатывать сообщения с повторяющимися группами, это конфигурация? Любая помощь будет принята с благодарностью!
3 ответа
Ваше сообщение, кажется, в порядке. Попробуйте поместить это в свой конфигурационный файл.
ValidateFieldsOutOfOrder=N
Quickfix по умолчанию устанавливает это как Y и базовая структура, хранящая значения табуляции и поля, не может видеть счетчик раньше. 453 > 448.
В качестве sidenote всегда проверяйте эти поля. Они должны указать вам источник проблемы.
58=Tag appears more than once
371=448
У меня была та же проблема, и я решил ее, настроив свой DataDictionary, как показано в сообщении AE TradeCaptureReport
Может быть, это выстрел в темноте, но у меня была похожая проблема при использовании словаря 5.0sp2. Я решил использовать обновленную версию библиотеки быстрого исправления, скомпилированной из хранилища библиотеки SVN. Если я правильно помню, это была ошибка.
Похоже, что библиотека быстрых исправлений не обновлялась долгое время, и для более новой версии исправления я предлагаю вам использовать "ствол" репо.