I have a fairly simple quickfix/n setup to the ICE test platform but the engine at this end is rejecting trade capture reports (ae) - stating that field 828 (TrdType) has an incorrect data format for the value.
It looks like the exchange is sending data (an 'S') that quickfix is not expecting. Everything is supposed to be 44.. could this be a version issue or is the exchange just misbehaving?
initiator.config
ValidateFieldsOutOfOrder=N
ValidateFieldsHaveValues=N
ValidateUserDefinedFields=N
DataDictionary=../../spec/FIX44.xml
Subscription code
public TradeCaptureReportRequest ReportRequestSubscribe()
{
TradeCaptureReportRequest req = new TradeCaptureReportRequest(new TradeRequestID("187345347856"), new TradeRequestType(TradeRequestType.ALL_TRADES));
req.SubscriptionRequestType = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES);
return req;
}
Calling code
if (_initiator.IsLoggedOn)
{
MessageFactory mFact = new MessageFactory();
fixApp.sendMessage(mFact.ReportRequestSubscribe());
}
AD and AQ messages
8=FIX.4.49=9435=AD34=249=1006350=testsubid52=20140210-11:40:39.44556=ICE263=1568=187345347856569=010=231
8=FIX.4.49=10035=AQ34=249=ICE52=20140210-11:40:39.60056=1006357=testsubid568=187345347856569=0749=0750=010=042
AE and Reject message
20140210-16:14:03.693 : 8=FIX.4.49=71235=AE49=ICE34=352=20140210-16:14:03.68156=1006357=testsubid571=386487=0856=0828=S150=F17=5325010939=2570=N55=279100548=BRZ SMZ0014_OMCE000000413211121422=8461=OCXXXX202=4.139403=90855287916=20141201917=2014123132=1.031=2.639018=19022=175=2014021060=20140210-16:14:00.5189413=0552=154=137=5325010911=53250109453=11448=scadv-block447=D452=11448=36 South Capital Advisors LLP447=D452=13448=8449447=D452=56448=PVM Oil Associates Ltd-Broker447=D452=1448=10063447=D452=61448=ice_hd447=D452=12448=8449447=D452=35448=8745447=D452=4448=38023447=D452=51448=JP Morgan Securities LLC447=D452=60448=W447=D452=54376=1010000042303dab89ac4149928cb31a46d4c76b0210=060
20140210-16:14:03.855 : 8=FIX.4.49=12535=334=349=1006350=testsubid52=20140210-16:14:03.85356=ICE45=358=Incorrect data format for value371=828372=AE373=610=104
20140210-16:14:03.847 : Could not convert field: Could not convert string to int (S): The first character must be a digit or a minus sign
20140210-16:14:03.853 : Message 3 Rejected: Incorrect data format for value (Field=828)
and the quickfix component raises a real error:
A first chance exception of type 'QuickFix.FieldConvertError' occurred in QuickFix.dll
A first chance exception of type 'QuickFix.IncorrectDataFormat' occurred in QuickFix.dll