I am trying to subscribe to MarketData SnapShot full refresh.
I can see data message 35=W coming in from an established API, but I cannot catch it in either FromApp or FromAdmin.
The quick fix engine is immediately finding something wrong with the message (repeat tags) and is sending an automatic error message to API via ToAdmin, But I suspect message is OK, it is just the engine doesn't like it.
It never gets chance to get cracked. Why is this happening?
My subscription message:
8=FIX.4.4|9=130|35=V|34=2|49=STR.NY.SIM|52=20150429-10:52:21.032|56=XXX|262=MARKETDATAID|263=1|264=1|265=0|267=1|269=0|146=1|55=EUR/USD|10=114|
Reply from API:
8=FIX.4.4|9=0342|35=W|49=XXX|56=STR.NY.SIM|52=20150429-10:52:21.035|34=2|262=MARKETDATAID|55=EUR/USD|64=SP|268=2|269=0|278=2ba#1430304740070#0.B_J0+|270=1.39076|271=4000000|272=20150429|273=10:52:20.070|15=EUR|282=JPMC|64=20150501|269=1|278=2ba#1430304740070#0.O_J0+|270=1.39088|271=4000000|272=20150429|273=10:52:20.070|15=EUR|282=JPMC|64=20150501|10=080|
QuickFix response BEFORE crack:
8=FIX.4.4|9=121|35=3|34=3|49=STR.NY.SIM|52=20150429-10:52:21.108|56=XXX|45=2|58=Tag appears more than once|371=64|372=W|373=13|10=221|
I don't see field 64
mentioned in the definition of MarketData SnapShot full refresh message for FIX4.4. Not just that, it appears more than once in the reply from the "established" API.
Field 64
is the field for Settlement Date... It may be that the counterparty is sending more data than is required or interprets this as another field. Even so, the format of the contents should be YYYYMMDD
which is not so for the first occurrence of this field.
QuickFIX validates messages according to the Data Dictionary (cf FIX4.4.xml). If this field does not appear in the specification the message will be rejected by QuickFIX.
If the counterparty cannot change this, ie will keep sending tag 64 in message type W, you will have to either tweak the data dictionary specifically for this counterparty, or try find a way to remove the tags before processing this message.
EDIT: I did find an occurrence of tag 64 in the FIX 5.0 SP2 specification... Your counterparty is responding with fields from another fix version.