3

I'm having an issue with Quickfixn and I'm hoping someone with more experience working with it can shed some light on an issue I'm facing. For some reason, messages are getting rejected by the QuickFix engine because of repeating tags... I expect to have repeating tags and so I set the UseDataDictionary flag = Y in my config file but messages are still getting rejected. Has anyone experienced a similar issue ?

The message I'm receiving looks like :

8=FIXT.1.1 9=421 35=AE 34=8 1128=8 49=XXX 56=YYY 52=20130501-15:45:53 552=1 54=2 37=130501-5 11=NOREF 826=0 78=1 79=default 80=1000000.00 5967=12167800.00 453=4 448=ITXT 452=3 447=D 448=TEST 452=1 447=D 448=LMEB 452=16 447=D 448=FRTB 452=11 447=D 571=6718487 150=F 32=1000000.00 15=USD 1056=12167800.00 31=12.1678 194=12.1678 195=0 64=20130503 63=0 60=20130501-00:00:00 75=20130501 1057=Y 460=4 167=FOR 65=SP 55=USD/MXN 10=203

8=FIXT.1.1 9=124 35=3 34=8 49=XXX 52=20130501-15:45:54.209 56=YYY 45=8 58=Tag appears more than once 371=448 372=AE 373=13 10=210

my config file looks like this:

[DEFAULT]
ConnectionType=initiator
HeartBtInt=30
ReconnectInterval=10
SocketReuseAddress=Y
FileStorePath=D:\Store
FileLogPath=D:\Log

[SESSION]
BeginString=FIXT.1.1
SenderCompID=XXX
TargetCompID=YYY
DefaultApplVerId = FIX.5.0SP1
UseDataDictionary=Y
AppDataDictionary=D:\Interface\FIX50SP1.xml
StartDay=sunday
StartTime=20:55:00
EndTime=06:05:00
EndDay=saturday
SocketConnectHost=1.1.1.1
SocketConnectPort=8443

Any help would be greatly appreciated! Thank you.

Franco Trombetta
  • 207
  • 1
  • 5
  • 14
  • Hmm. Config looks good. Are you sure of that path? Did your counterparty make any customizations to AE that are not in your DD? For instance, "5967" is not a standard tag. I could see this throwing the parser off. – Grant Birchmeier May 02 '13 at 03:15
  • is it supposed to be AppDataDictionary and not just DataDictionary, its probably reading the original DD from the release and not your custom one. – robthewolf May 02 '13 at 09:39
  • @robthewolf - DataDictionary is for 4.4 and prior. FIX 5.0 instead uses AppDataDictionary and TransportDataDictionary. – Grant Birchmeier May 03 '13 at 03:15
  • @franco-trombetta - You should probably also add TransportDataDictionary. I don't think it's your problem, but it can't hurt, and it's the right thing to do. – Grant Birchmeier May 03 '13 at 03:17

2 Answers2

3

Often this happens because there is a field in a repeating group that is not specified in the DataDictionary. The parser sees the field and assumes the repeating group has ended. It continues parsing fields as if they are not part of a group. If it sees a duplicate field in this context, the parser will report an error.

Frank Smith
  • 978
  • 5
  • 11
1

You may clone and modify FIX Data Dictionary (D:\Interface\FIX50SP1.xml) to fit your needs, if you need to process "invalid" messages. Or you may disable message validation.

Konstantin Pavlov
  • 956
  • 1
  • 10
  • 24
  • This approach just worked for me. I brought back an old field from FIX42.xml and spliced it into FIX44.xml within ExecReport (35=8) and therefore the ExecReport was not rejected and flowed up to App session within QFE. – ryan Dec 22 '22 at 00:33