3

Having some problems with incoming messages for our quickfix connection. We use a dictionary because of repeating groups in the messages, but this means quickfix is applying a strict validation of incoming messages. But I've had problems with the server changing it's message formats without warning. The incoming message suddenly contains new fields, not in the dictionary. Quickfix rejects them.

Is there a way to tell quickfix to relax validation, either pass the message with a warning, or just ignore any fields not in the dictionary? This is an XML based dictionary after all, why does it flat out reject fields not included, I can understand if a field specified as required is missing.

Thanks.

PeteOopNorf
  • 97
  • 1
  • 7
  • If your counterparty is randomly adding new fields without notice, then they are a sketchy counterparty. Are you sure they don't have a published spec and some kind of mailing list to notify you of changes? – Grant Birchmeier Nov 29 '14 at 23:52
  • I've spent hours and hours editing data dictionaries for similar reasons. Your only option (in my experience) if your counterparty doesn't provide a DD and you don't pick another counterparty, is to drill down into the DD and add fields. Whenever QF rejects a message, you have you figure out the tag value and the message type, and add that tag as a non-required field. Also, though I have never had to use this, and am not sure if it will work, it might be worth trying to set the `allowOtherValues` tag to true, e.g. `` – Wapiti Nov 30 '14 at 03:06
  • @Grant, sometimes mailing lists get forgotten. I read something you wrote [here](http://stackoverflow.com/questions/23357620/capturing-incoming-fix-messages-which-fail-quickfix-validation?rq=1) about 'protocol-specific behavior', is it a FIX requirement that a message that fails validation is rejected? I think there's some confusion from the counterparty that an XML dict is being stricly applied, the thought being that extra fields in a XML dict should be ignored and not cause a fail. – PeteOopNorf Nov 30 '14 at 11:29
  • 1
    If the engine gets fields it doesn't expect, then it can't know how to process them, especially if those fields are in a repeating group. Your counterparty should not be adding fields randomly without notice. They should be able to provide a list of messages and fields that you can expect to receive. – Grant Birchmeier Dec 01 '14 at 15:51

2 Answers2

4

Try setting AllowUnknownMsgFields=Y in config.

iku
  • 1,007
  • 2
  • 10
  • 23
2

You can relax the validation by not using the dictionary at all, if that is of any use to you.

UseDataDictionary=N.

Prashanth
  • 328
  • 2
  • 3
  • 11