Reputation: 43
I am able to receive my FIX message successfully in fromApp() method but when I am on quickfix version 1.6.3. As soon as I change quickfix version to 1.6.4, I am not receiving part of my message.
The message I receive on 1.6.3 8=FIX.4.4__9=176__35=V__34=283__49=K3FIX__52=20240206-11:19:44.484__56=acceptor-dev__142=192.000.8.001__262=KL07181EBBE34530982ECAF18982BCGH__263=1__271=1__4567=2M__146=1__55=ABC/MNQ__83=FBSFxR4__10=201__
The message I receive on 1.6.4 8=FIX.4.4__9=139__35=V__34=2__49=K3FIX__52=20240206-10:25:52.758__56=acceptor-dev__142=192.000.8.001__146=1__262=KH4B989277CE4A97A079619BF58E8BFT__263=1__10=101__
So you see after 263=1, I am missing on few fields. These are the messages logged in fromApp() method.
Please note I have nto changed anything from 1.6.3 to 1.6.4 except this change of version.
I am using FIX 4.4 in both and using below 2 properties as well: fix.acceptor.useDataDictionary=Y fix.acceptor.dataDictionary=FIX44.xml
I verfied source is sending correct message in both cases. I am trying to log the messages in fromApp method and above are those messages. Verified FIX4.4 in both cases and data dictionary props are same in both cases too. I am expecting information "4567=2M__146=1__55=ABC/MNQ__83=FBSFxR4" in my message after 1.6.4 upgrade.
Edit:
I have those props in my application.properties
fix.acceptor.validateFieldsOutOfOrder=N
fix.acceptor.allowUnknownMsgFields=Y
Edit2: below is my FX44.xml
<fix major="4" minor="4">
<header>
</header>
<trailer>
</trailer>
<messages>
<message name="KDRequest" msgtype="V" msgcat="app">
<group name="NRS" required="N">
<field name="KDESize" required="N" />
<field name="DValue" required="N" />
</group>
</message>
<message name="KDSFull" msgtype="W"
msgcat="app">
<group name="NoMDEntries" required="Y">
<field name="KDESize" required="N" />
<field name="DValue" required="N" />
</group>
</message>
</messages>
<components />
<fields>
<field number="271" name="KDESize" type="QTY" />
<field number="4567" name="DValue" type="STRING" />
</fields>
</fix>
Upvotes: 0
Views: 151
Reputation: 3283
Check that the dictionary for message type V/MarketDataRequest containts the tags that you receive in the message.
E.g. tags 271 and 4567 are NOT part of the standard V message. You need to add these tags to the dictionary (preferred) or set the following options to have the message accepted:
ValidateUnorderedGroupFields=N
AllowUnknownMsgFields=Y
Edit: IIRC we improved some thing in validating unknown fields. If your case worked with QFJ 1.6.3 then it was most probably a bug. ;)
Upvotes: 1