Page tree
Skip to end of metadata
Go to start of metadata

The following parameters of messages validation in FIX Antenna C++/.NET can be configured in the engine.properties:

Engine Level properties

Parameter name
Available values
Description
MessageMustBeValidated

true
false

This parameter is equal to Session.Default.Validation.IsEnabled but have lower priority.
CheckVersionOfOutgoingMessages
true
false 

This parameter is an option whereby the version of FIX protocol used for the outgoing message is validated against that of the established session. It's used for outgoing messages only.

If set to “true” then the application must use the same version of the protocol as the established session otherwise an error occurs. If set to “false” then the application level message will be sent to the counterparty regardless of the version of the protocol. The recommended value is “true”.

WARNING! Changing this value will impact upon the performance of FIX Engine.

In the development should be “true”. In production should be “false”.

This parameter is required.

Session Level properties

Parameter name
Available values
Description
Session.<SenderId>/<TargetId>.AllowMessageWithoutPossDupFlag

 

true
false

This parameter is an option whereby the repeated messages are received without PossDupFlag (43) field. It's used for incoming messages only.

If set to “true” and message is received with sequence number less than expected without PossDupFlag (43), message will be processed. If set to “false”,connection will be closed. The default value is “false”.

This parameter is optional.

Session.<SenderId>/<TargetId>.ValidateCheckSum
true
false

This parameter is an option whereby CRC validation for incoming messages can be controlled. It's used for incoming messages only.

If set to “true” session will be processed. If set to “false session skips CRC validation for incoming messages. The default value is “true”.

This parameter is optional.

Session.<SenderId>/<TargetId>.IgnoreSeqNumTooLowAtLogon
true
false

This parameter is an option whereby session is processed if sequence number in Logon message is lower than expected. It allows to resolve ‘SeqNum too low’ problem at logon. It's used for incoming messages only.

If set to “true” ‘SeqNum too low’ at incoming Logon message is ignored and session will be continued with received ‘SeqNum’. If set to “false” and sequence number in Logon message is lower than expected connection will be closed. The default value is “false”.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.IsEnabled
true
false

This parameter is an option whereby validation in application messages can be controlled. It's used for outgoing (only application) and incoming (both session and application) messages.

If set to “true” all received application messages will be validated. If set to “false” validation of all application messages will be skipped. The default value is“false”.

WARNING! Changing this value will impact upon all application messages validations below and does not affect on session messages validation.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.IgnoreUnknownFields
true
false

This parameter is an option whereby undefined fields can be ignored during incoming messages parsing (both session and application messages). It's used for incoming messages only.

If set to “true” any field that is unknown to dictionary will be ignored. If set to “false” all unknown fields will be stored in the list on the heap. The default value is “false”.

NOTE! This value has priority over all other validation settings. For example, even if MessageMustBeValidated = true, or ProhibitUnknownTags = true, orVerifyTagsValues = true unknown fields are ignored.

WARNING! Changing this value will impact upon the performance of FIX Engine.

In the development should be “false” and all unknown fields should be listed in the dictionary file. In production should be “true”. Should be “false” for development, “true” for production because if “false” FIX Engine stores all unknown fields in the FIX Message in the list on the heap. With true it would ignore these fields thus limit storage on heap.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.ProhibitUnknownTags
true
false

This parameter is an option whereby unknown fields handling can be controlled. It's used for outgoing and incoming messages.

If set to “true” engine will reject messages with unknown tags in the fields. If set to “false” then all fields with unknown tags will be stored to the message. Thedefault value is “false”.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.ProhibitTagsWithoutValue
true
false

This parameter is an option whereby fields without values in incoming messages.  It's used for incoming messages.

When engine receives incoming message without value, an "exception" is created. If set to “true” exception will be fired. The counterparty will receive reject session message (35=3). If set to “false” raw message may contains tags without values - they will be ignored. The default value is “true”.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.VerifyTagsValues
true
false

This parameter is an option whereby tag values verification can be controlled. It's used for outgoing messages.

If set to “true”, then all tag values in messages are verified on the basis of engine vocabulary. If set to “false”, then the responsibility for message validity rests with the counterparty. The default value is true.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.VerifyReperatingGroupBounds
true
false

This parameter is an option whereby repeating group size verification can be controlled. It's used for incoming messages.

If set to “true”, engine will reject messages with incorrect repeating group size. If set to “false”, message will be passed to the application layer. In this case the responsibility for message validity rests with the counterparty. The default value is “true”.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.CheckRequiredGroupFields
true
false

This parameter is an option whereby the validation of required fields in repeating group can be controlled. It's used for outgoing and incoming messages.

If set to “true”, then repeating groups will be checked for presence of required and conditionally required fields. If set to “false”, then the responsibility for repeating group validity rests with the counterparty. The default value is “true”.

The recommended setting is “true”.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.AllowZeroNumInGroup
true
false

This parameter is an option whereby incoming messages with zero numbers in groups can be processed. It's used for incoming messages.

When engine receives incoming message without value, an "exception" is created. If set to “true”, raw message may contains leading group tag with zero value - it will be ignored. If set to “false”, the exception will be fired.

This parameter is optional.

Session.<SenderId>/<TargetId>.Validation.ProhibitDuplicatedTags
true
false

This parameter is an option whereby incoming messages with duplicated tags can be processed. It's used for incoming messages.

If set to “true” incoming messages with duplicated tags will be rejected with the following message:

"Tag appears more than once [RefSeqNum: _, RefTagID: _, RefMsgType: _]".

If set to “false” raw message may contain duplicated field definitions. The default value is “true”. This parameter is optional.

In engine.properties file, the option can be defined:

  • for all sessions:

    Session.Default.Validation.ProhibitDuplicatedTags = true
  • for a specific session:

    Session.<SenderId>/<TargetId>.Validation.ProhibitDuplicatedTags = true
Session.<SenderId>/<TargetId>.GenerateCheckSum
true
false
Generation of CRC.

How to set default values for session level parameters in the engine.properties file

Just use the following syntax

Session.Default.<ParameterName>

for example

Session.Default.Validation.AllowZeroNumInGroup = true
  • No labels