Details
-
Type: Other
-
Status: Closed
-
Priority: Minor
-
Resolution: Not a bug
-
Affects Version/s: 2.1.1
-
Fix Version/s: None
-
Component/s: Message Generation
-
Labels:None
Description
I construct a message in the following way:
quickfix.fix44.MarketDataRequest message = new quickfix.fix44.MarketDataRequest(); char zero = '0'; char one = '1'; message.setField(new quickfix.field.MDReqID("EURUSD")); // 262 message.setField(new quickfix.field.SubscriptionRequestType(one)); // 263 message.setField(new quickfix.field.MarketDepth(1)); // 264 message.setField(new quickfix.field.MDUpdateType(0)); // 265 message.setField(new quickfix.field.NoMDEntryTypes(2)); // 267 message.setField(new quickfix.field.MDEntryType(zero)); // 269 message.setField(new quickfix.field.MDEntryType(one)); // 269 message.setField(new quickfix.field.NoRelatedSym(1)); // 146 message.setField(new quickfix.field.SecurityID("4001")); // 48 message.setField(new quickfix.field.SecurityIDSource("8")); // 22 Session.sendToTarget(message, senderCompID, marketTargetCompID);
I also load a dictionary in which tags 146, 48 and 22 are after tag 269. But the message sent to the trader looks like this:
8=FIX.4.4^A9=121^A35=V^A34=2^A49=USERNAME^A52=20190821-11:11:42.045^A56=TRADER^A22=8^A48=4001^A146=1^A262=EURUSD^A263=1^A264=1^A265=0^A267=2^A269=1^A10=191^A
The confusing thing is that tags 146, 48 and 22 are mixed and moved before tag 262 even though the dictionary doesn't allow that.
I have two suggestion why this may happen:
- Quickfix/J mixes the tags because of an issue or because I miss some configuration.
- The dictionary provided by the trader is not loaded and I use some defaultdictionary which brings me to this issue.
I don't know if that would help but here is the cfg file:
[DEFAULT]
ConnectionType=initiator
BeginString=FIX.4.4
StartTime=08:30:00
EndTime=21:30:00
ReconnectInterval=5
HeartBtInt=5
LogonTimeout=60
FileStorePath=target/data/sessions/
FileLogPath=target/data/logs/
SenderCompID=USERNAME
UseDataDictionary=Y
SocketUseSSL=Y
[SESSION]
TargetCompID=TRADER
SocketConnectHost=URL_OF_THE_TRADER
SocketConnectPort=443
DataDictionary=/var/quickfixj/automated/DICTIONARY.xml