Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

FIX Antenna reads the configuration parameters by default from the engine.properties file during initialization.

The user can also assign another name for the configuration file, such as the Engine::FixEngine::init(const std::string& aPropertiesFileName = "") call parameter.

For example:

Code Block
languagebash
Engine::FixEngine::init("FE.properties")

Engine parameters

EngineRoot

The top of the directory tree under which the Engine's configuration and log files are kept.

DO NOT add a slash at the end of the directory path.

ListenPort

Optional. Port or several ports, delimited by a comma, on which acceptors listen to FIX sessions' incoming connections. 

One incoming port can be used for several sessions. 

The parameter is ignored for the entire application if a listen port is set for a specific session. In this case, another ListenPort parameter (on session level) is used by FIX Engine. 

If the listen port is not set either globally, or for a specific session, FIX Engine will not accept connections. 

LogFileName

Optional. Engine's log file name. If this parameter is commented or empty, LogFileName = "engine.log" as default.

Actually represents the alias for the "Log.Engine.File.Name" parameter. If both parameters are specified simultaneously, then:

...

Table of Contents

Overview

FIX Antenna reads the configuration parameters by default from the engine.properties file during initialization.

The user can also assign another name for the configuration file, such as the Engine::FixEngine::init(const std::string& aPropertiesFileName = "") call parameter.

For example:


Code Block
languagebash
Engine::FixEngine::init("FE.properties")

Engine parameters

EngineRoot

The top of the directory tree under which the Engine's configuration and log files are kept.

DO NOT add a slash at the end of the directory path.

ListenPort

Optional. Port or several ports, delimited by a comma, on which acceptors listen to FIX sessions' incoming connections. 

One incoming port can be used for several sessions. 

The parameter is ignored for the entire application if a listen port is set for a specific session. In this case, another ListenPort parameter (on session level) is used by FIX Engine. 

If the listen port is not set either globally, or for a specific session, FIX Engine will not accept connections. 

LogFileName

Optional. Engine's log file name. If this parameter is commented or empty, LogFileName = "engine.log" as default.

Actually represents the alias for the "Log.Engine.File.Name" parameter. If both parameters are specified simultaneously, then:

IncludeProperties

Info

The parameter is available since FIX Antenna C++ 2.31.0 release.

Optional. This parameter defines the list of paths to the auxiliary properties files to be included in the engine.properties file. FIX Antenna C++ also provides the ability to include auxiliary properties files recursively.

Info

If some property is specified in several configuration files then the value from the last read file will be used.

Example: IncludeProperties = Engine/conf/engine.properties1

ListenAddress

Optional. The local IP address of the network interface accepting incoming connections.

Default value: 0.0.0.0 - listens to connections at all network interfaces.

LicenseFile

The license file path.

LogDirectory

This property is the path of the directory in which the logs for all incoming (if LogIncomingMessages is set to "true") and outgoing FIX messages are stored.

It is possible to specify a path related to the EngineRoot directory. For example, if LogDirectory is set to "logs", then the real path is /logs. The specified directory must exist.

Info

Since FIX Antenna 2.30.0 version log files stored in the log directory can be cleared and re-written during new log file creation (i.e. on the sequence number reset) if they contain only one administrative outgoing message or no messages at all.

NumberOfWorkers

A number of threads that serve FIX sessions (heartbeat generation/check, message rejecting, message delay delivering, etc.).

The recommended value is 10. The value must be an integer greater than zero.

Info

Changing this value will impact the performance of FIX Engine.

The most efficient parameter value should be distinguished during testing.


Tip

Workers are used for the following operations:

  • Process incoming connections (for acceptors) until the incoming Logon message is delivered

  • Initiate session reconnect (for acceptors) when logout is received and the Application marks the session to connect again

  • Process outgoing connections (for initiators) until TCP connection is established and outgoing Logon is sent in case async connect is used

  • Deliver rejected messages back to Application if EnableMessageRejecting = true and the message cannot be sent on time

  • Deliver delayed messages to Applicationwhenfirstcallofprocess() returns false

OutOfSequenceMessagesStrategy

Info

The parameter is available since FIX Antenna 2.23.0 release.

Optional. This parameter sets a strategy for processing out-of-sequence messages. The details about the strategies can be found here: How to set strategy for processing out-of-sequence messages

Valid values:

  • RequestAlways - send resend request with BeginSeqNo (7) = <out-of-sequence message number>, EndSeqNo (16) =0 on any out-of-sequence message
  • RequestOnce - send the only resend request on the gap. Duplicates of resend requests for the same interval are not sent
  • IgnoreGap - send resend request on gap and process out-of-sequence messages
  • Queue - use a temporary queue for storing out-of-sequence messages and process them after the gap is closed
Info

Not supported for FAST sessions.

Default value: RequestAlways

OutOfSequenceMessagesStrategy.QueueSize

Info

The parameter is available since FIX Antenna C++ 2.3123.0 release.

Optional.

This parameter defines the list of paths to the auxiliary properties files to be included in the engine.properties file. FIX Antenna C++ also provides the ability to include auxiliary properties files recursively.
Info

If some property is specified in several configuration files then the value from the last read file will be used.

Example: IncludeProperties = Engine/conf/engine.properties1

ListenAddress

Optional. The local IP address of the network interface accepting incoming connections.

Default value: 0.0.0.0 - listens to connections at all network interfaces.

LicenseFile

The license file path.

LogDirectory

This property is the path of the directory in which the logs for all incoming (if LogIncomingMessages is set to "true") and outgoing FIX messages are stored.

It is possible to specify a path related to the EngineRoot directory. For example, if LogDirectory is set to "logs", then the real path is /logs. The specified directory must exist.

Info

Since FIX Antenna 2.30.0 version log files stored in the log directory can be cleared and re-written during new log file creation (i.e. on the sequence number reset) if they contain only one administrative outgoing message or no messages at all.

NumberOfWorkers

A number of threads that serve FIX sessions (heartbeat generation/check, message rejecting, message delay delivering, etc.).

The recommended value is 10. The value must be an integer greater than zero.

Info

Changing this value will impact the performance of FIX Engine.

The most efficient parameter value should be distinguished during testing.

Tip

Workers are used for the following operations:

  • Process incoming connections (for acceptors) until the incoming Logon message is delivered

  • Initiate session reconnect (for acceptors) when logout is received and the Application marks the session to connect again

  • Process outgoing connections (for initiators) until TCP connection is established and outgoing Logon is sent in case async connect is used

  • Deliver rejected messages back to Application if EnableMessageRejecting = true and the message cannot be sent on time

  • Deliver delayed messages to Applicationwhenfirstcallofprocess() returns false

OutOfSequenceMessagesStrategy

The size of the temporary queue for processing out-of-sequence messages (measured in a count of messages). The parameter is used if parameter OutOfSequenceMessagesStrategy=Queue.

Default value: 2000

A queue should be cleared after exceeding the limit of out-of-sequence messages and a new resend request should be sent.

The details about the strategies can be found here: How to set strategy for processing out-of-sequence messages

DictionariesFilesList

This parameter contains a list of names of XML files with extensions of the FIX protocols delimited by semicolon.

AdditionalParsersList

Info

Parsers are not used for Market Data Adapters and for FAST Sessions.

This parameter defines the list of additional (custom) protocols which require registering the corresponding parsers.

When FIX Antenna is started, all dictionaries from DictionariesFilesList are loaded. If dictionaries are standard, predefined standard parsers (like FIX40; FIX41; FIX42; FIX43; FIX44; FIXT11) are created based on them. If any dictionary from DictionariesFilesList is custom, the parser is not automatically created and therefore such parsers should be listed in the AdditionalParsersList parameter.

Format of the value: [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...], where:

  • UNIQUE_PARSER_NAME - optional, name of the parser;
  • FIXT_PROTOCOL1 - optional, session protocol. Required if APP_PROTOCOL doesn't contain session messages;
  • APP_PROTOCOL1 - required, application protocol;
  • APP_PROTOCOL2, ... - optional, list of other application protocols.

Below are examples of possible parsers with the correct format:

  • MyFixParser@FIXT11:FIX50SP2,FIX50SP1;
  • FIXT11:FIX50SP2,FIX50SP1;
  • FIXT11:FIX50SP2;
  • FIX44.

Example: AdditionalParsersList = FIX44; FIXT11:FIX50SP2;  FIXT11:FIX50SP2, FIX50SP1; MyFixParser@FIXT11:FIX50SP2,FIX50SP1

MaximumParsersAllowed

Info

The parameter is available since FIX Antenna 2.2330.0 release.

Optional. This parameter

sets a strategy for processing out-of-sequence messages. The details about the strategies can be found here: How to set strategy for processing out-of-sequence messages

Valid values:

  • RequestAlways - send resend request with BeginSeqNo (7) = <out-of-sequence message number>, EndSeqNo (16) =0 on any out-of-sequence message
  • RequestOnce - send the only resend request on the gap. Duplicates of resend requests for the same interval are not sent
  • IgnoreGap - send resend request on gap and process out-of-sequence messages
  • Queue - use a temporary queue for storing out-of-sequence messages and process them after the gap is closed
Info

Not supported for FAST sessions.

Default value: RequestAlways

OutOfSequenceMessagesStrategy.QueueSize

defines the maximum amount of parsers allowed.

Valid values: An integer greater or equal to 100

Default value: 100

Example: MaximumParsersAllowed = 200

CheckVersionOfOutgoingMessages

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

If set to 'true', then the application must use the same version of the protocol as the established session otherwise occurs the error may be seen on the BL (in the case of configured Managed Queue - in the log file). If set to 'false' then the application-level message will be sent to the counterparty.

The recommended value is 'true'.

Info

Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false.

Debug.LogSessionExtraParameter

If this property value is true, all session parameters will be printed to the application log file.

BackupDirectory

Relative path to the backup folder.

This folder will be used for message storage files of the backup connections.

ReceiveTimestamps.Enable


Info
The parameter is available since FIX Antenna 2.2333.0 release.
Optional. The size of the temporary queue for processing out-of-sequence messages (measured in a count of messages). The parameter is used if parameter OutOfSequenceMessagesStrategy=Queue

Enables or disables ability to retrieve hardware timestamps of incoming messages (if available). See also FIXMessage::getReceiveTimestamp().

Valid values:

  • true - to enable hardware timestamps;
  • false - to disable hardware timestamps.

Default value:

 2000

A queue should be cleared after exceeding the limit of out-of-sequence messages and a new resend request should be sent.

The details about the strategies can be found here: How to set strategy for processing out-of-sequence messages

DictionariesFilesList

This parameter contains a list of names of XML files with extensions of the FIX protocols delimited by semicolon.

AdditionalParsersList

Info

Parsers are not used for Market Data Adapters and for FAST Sessions.

This parameter defines the list of additional (custom) protocols which require registering the corresponding parsers.

When FIX Antenna is started, all dictionaries from DictionariesFilesList are loaded. If dictionaries are standard, predefined standard parsers (like FIX40; FIX41; FIX42; FIX43; FIX44; FIXT11) are created based on them. If any dictionary from DictionariesFilesList is custom, the parser is not automatically created and therefore such parsers should be listed in the AdditionalParsersList parameter.

Format of the value: [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...], where:

  • UNIQUE_PARSER_NAME - optional, name of the parser;
  • FIXT_PROTOCOL1 - optional, session protocol. Required if APP_PROTOCOL doesn't contain session messages;
  • APP_PROTOCOL1 - required, application protocol;
  • APP_PROTOCOL2, ... - optional, list of other application protocols.

Below are examples of possible parsers with the correct format:

  • MyFixParser@FIXT11:FIX50SP2,FIX50SP1;
  • FIXT11:FIX50SP2,FIX50SP1;
  • FIXT11:FIX50SP2;
  • FIX44.

Example: AdditionalParsersList = FIX44; FIXT11:FIX50SP2;  FIXT11:FIX50SP2, FIX50SP1; MyFixParser@FIXT11:FIX50SP2,FIX50SP1

MaximumParsersAllowed

Info

The parameter is available since FIX Antenna 2.30.0 release.

Optional. This parameter defines the maximum amount of parsers allowed.

Valid values: An integer greater or equal to 100

Default value: 100

Example: MaximumParsersAllowed = 200

CheckVersionOfOutgoingMessages

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

If set to 'true', then the application must use the same version of the protocol as the established session otherwise occurs the error may be seen on the BL (in the case of configured Managed Queue - in the log file). If set to 'false' then the application-level message will be sent to the counterparty.

The recommended value is 'true'.

Info

Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false.

Debug.LogSessionExtraParameter

If this property value is true, all session parameters will be printed to the application log file.

BackupDirectory

Relative path to the backup folder.

This folder will be used for message storage files of the backup connections.

Session parameters

To configure a session parameter for a session defined by SenderCompId (49) and TargetCompId (56) the following line should be added to the engine.properties file:

Session.<SenderCompID>/<TargetCompID>.<Parameter> = <value> 

To configure the default session parameter the following line should be added to the engine.properties file:

Session.Default.<Parameter> = <value>

LogonTimeFrame

This parameter sets the time period after which a session is non-gracefully terminated if a response is not received to a first "Logon" message (message type A).

The corresponding Logout message is sent to the counterparty. This value is in seconds. The recommended value is 30 seconds for dedicated connections or private networks. Trading connections via the internet will require calibration. If it is set to "0", then the time period is unlimited. The value must be an integer and not negative.

LogoutTimeFrame

This parameter sets the time period after which a session is automatically terminated if a response is not received to a "Logout message" (message type 5).

This value is in seconds. The recommended value is 10 seconds for dedicated connections or private networks. Trading connections via the internet will require calibration. The value must be an integer greater than 0.

IntradayLogoutTolerance

An option to not reset sequence numbers after Logout.

Valid values:

  • true - enables IntradayLogoutTolerance mode
  • false - disables IntradayLogoutTolerance mode

If set to true, sequence numbers are not reset after Logout. Logout sender should initiate session recovery by sending Logon message with SeqNum = <last outgoing="" seqnum>=""> + 1; expecting reply Logon with SeqNum = <last incoming="" seqnum>=""> + 1. If a gap is detected, a standard message recovery or gap-filling process takes place.

If set to false, sequence numbers are reset after Logout.

ReasonableTransmissionTime

This parameter specifies the delta (increment) to the Heartbeat interval between a TestRequest message being sent by FIX Engine and a Response Heartbeat being received.

The session attains a "telecommunication failed state" if no Response Heartbeat message is received after the normal Heartbeat interval plus delta. For example, if no message (application or session level) is received during the Heartbeat interval, the engine sends the TestRequest message. If the required Response Heartbeat message is not received during the Heartbeat interval plus Delta, then the session moves to the "Telecommunication link failed" state. This parameter is specified in (Heartbeat Interval/100).

The recommended value is 20%.

ForceSeqNumReset

This parameter controls the ResetSeqNumFlag (141) flag in the Logon (A) messages and allows resolving sequence gaps.

When the mode is ON, the session uses the ResetSeqNumFlag (141) tag in sending/confirming the Logon message and reset sequence numbers for an initiator or an acceptor.

Valid values:

  • "0" or "false" - Disable ForceSeqNumReset mode. Do not reset sequence numbers on Logon
  • "1" or "true" - Reset sequences at the first session initiation
  • "2" - Reset sequences for every Logon

DuplicateResendRequestLimit

This parameter specifies the number of duplicate resend request messages (35=2) that can be received before the Application::OnResendRequestLoop callback is called. This gives the user the option to respond to identical resend requests only once and ignore all other duplicates.

Default value: 2

The following conditions cause the FIX Engine to consider resend requests as duplicates:

  • The batch of messages that is to be resent, specified by the interval determined by the tags BeginSeqNo (7) & EndSeqNo (16), is the same
  • Resend requests are received while the FIX engine is processing other resend requests
Info

Ignoring resend requests is not compliant with the FIX Standard Protocol.

The FIX Standard Protocol recommends responding to every resend request received, which can make engine behavior unstable and lead to unexpected traffic growth.

Info

To follow the FIX Standard Protocol, DuplicateResendRequestLimit should be set to ‘0’.

Responding to every resend request is not the recommended behavior for FIX Antenna C++ products because doing so may lead to an infinite resend loop when one of the counterparties can’t process a batch of messages properly and initiates a resend request for the same batch of messages again and again. By reducing the volume of outgoing messages and duplicate responses, traffic is minimized and applications on both sides are made more stable.

ThirdPartyRoutingIsEnabled

FIX Engine has inbuilt FIX message routing capability and fully supports the "Deliver To On Behalf Of" mechanism as specified by the FIX protocol.

If this parameter is set to "true", the Engine redirects FIX messages automatically to other FIX sessions it maintains if the OnBehalfOfCompID field in the message is defined. If this parameter is set to "false", Engine directs all messages received to the client application.

DelayedProcessing.DeliveryTriesInterval

This parameter specifies the time interval between attempts to deliver an application-level message to a registered client application in the event the application does not confirm receipt and operation upon the message.

The value is specified in milliseconds. The value must be an integer greater than 0. This parameter is required only if the DelayedProcessing.MaxDeliveryTries parameter is specified.

DelayedProcessing.MaxDeliveryTries

Optional. This parameter specifies the number of attempts that will be made to deliver an application-level message to the registered client application.

If this value is exceeded then the session will be closed with the logout reason "Application not available".

The recommended value is 10. The value must be an integer and not negative.

Reconnect.Interval

This parameter specifies the time interval between reconnection attempts in order to restore a communications link.

This value is specified in milliseconds (seconds*10-3).

The recommended value is 1000 for dedicated connections and private networks. Internet connections require calibration. The value must be an integer greater than 0.

Reconnect.MaxTries

This parameter specifies the number of attempts to restore the session.

The session is considered as restored if the telecommunication link was restored and the exchange of Logon messages was successful. If it is set to "-1", then the number of attempts is unlimited.

This value is an integer.

MessageTimeToLive

Optional. This parameter sets the time period after which a message rejecting is started while the session doesn't exist.

Value is specified in milliseconds (seconds*10-3), and must be an integer greater than 0.

ResendMessagesBlockSize

Resend Request resend messages by blocks.

This parameter defines how many messages proceed in the block. The value “0” means that all messages will be resent in one block. The value must be an integer and not less than 0.

Default value: 1000

ResetSeqNumAfter24hours

Optional. An option to send a Logon message with the ResetSeqNumFlag set after each 24-hour period of the session's activity to establish a new set of sequence numbers (starting with 1).

Default value: false

Info

This option does not affect sessions that use version 4.0 of the FIX protocol.

EncryptionConfigFile

Encryption config file name.

TotalOutgoingStorageMemoryLimit

Specifies the total amount of memory (in MB) that the active session may use.

0 - means infinite. When the limit is reached, the "hardest" sessions will be closed non-gracefully.

OutOfSequenceMessagesStrategy

Info

The parameter is available since FIX Antenna 2.23.0 release.

Optional. This parameter sets a strategy for processing out-of-sequence messages for a specific session.

Valid values:

  • RequestAlways - send resend request with BeginSeqNo (7) = <out-of-sequence message number>, EndSeqNo (16) =0 on any out-of-sequence message. ResendRequestBlockSize is not supported (will be used strategy RequestOnce).
  • RequestOnce - send resend request on gap (considering  ResendRequestBlockSize parameter). Duplicates of resend requests for the same interval are not sent.
  • IgnoreGap - send resend request on gap and process out-of-sequence messages.
  • Queue - use a temporary queue for storing out-of-sequence messages and process them after the gap is closed. 
Info

Is not supported for FAST sessions

Default value: Engine parameter OutOfSequenceMessagesStrategy

Info

Old parameters DeliverAppMessagesOutOfOrder, and SuppressDoubleResendRequest must be removed for a specified strategy for sessions. Old parameters have higher priority.

DeliverAppMessagesOutOfOrder

Info

The parameter is deprecated

SuppressDoubleResendRequest

Info

The parameter is deprecated

OutOfSequenceMessagesStrategy.QueueSize

 false

Session parameters

To configure a session parameter for a session defined by SenderCompId (49) and TargetCompId (56) the following line should be added to the engine.properties file:

Session.<SenderCompID>/<TargetCompID>.<Parameter> = <value> 

To configure the default session parameter the following line should be added to the engine.properties file:

Session.Default.<Parameter> = <value>

LogonTimeFrame

This parameter sets the time period after which a session is non-gracefully terminated if a response is not received to a first "Logon" message (message type A).

The corresponding Logout message is sent to the counterparty. This value is in seconds. The recommended value is 30 seconds for dedicated connections or private networks. Trading connections via the internet will require calibration. If it is set to "0", then the time period is unlimited. The value must be an integer and not negative.

LogoutTimeFrame

This parameter sets the time period after which a session is automatically terminated if a response is not received to a "Logout message" (message type 5).

This value is in seconds. The recommended value is 10 seconds for dedicated connections or private networks. Trading connections via the internet will require calibration. The value must be an integer greater than 0.

IntradayLogoutTolerance

An option to not reset sequence numbers after Logout.

Valid values:

  • true - enables IntradayLogoutTolerance mode
  • false - disables IntradayLogoutTolerance mode

If set to true, sequence numbers are not reset after Logout. Logout sender should initiate session recovery by sending Logon message with SeqNum = <last outgoing="" seqnum>=""> + 1; expecting reply Logon with SeqNum = <last incoming="" seqnum>=""> + 1. If a gap is detected, a standard message recovery or gap-filling process takes place.

If set to false, sequence numbers are reset after Logout.

This is a global setting that can be overridden at the session level using IntradayLogoutToleranceMode.

ReasonableTransmissionTime

This parameter specifies the delta (increment) to the Heartbeat interval between a TestRequest message being sent by FIX Engine and a Response Heartbeat being received.

The session attains a "telecommunication failed state" if no Response Heartbeat message is received after the normal Heartbeat interval plus delta. For example, if no message (application or session level) is received during the Heartbeat interval, the engine sends the TestRequest message. If the required Response Heartbeat message is not received during the Heartbeat interval plus Delta, then the session moves to the "Telecommunication link failed" state. This parameter is specified in (Heartbeat Interval/100).

The recommended value is 20%.

ForceSeqNumReset

This parameter controls the ResetSeqNumFlag (141) flag in the Logon (A) messages and allows resolving sequence gaps.

When the mode is ON, the session uses the ResetSeqNumFlag (141) tag in sending/confirming the Logon message and reset sequence numbers for an initiator or an acceptor.

Valid values:

  • "0" or "false" - Disable ForceSeqNumReset mode. Do not reset sequence numbers on Logon
  • "1" or "true" - Reset sequences at the first session initiation
  • "2" - Reset sequences for every Logon

DuplicateResendRequestLimit

This parameter specifies the number of duplicate resend request messages (35=2) that can be received before the Application::OnResendRequestLoop callback is called. This gives the user the option to respond to identical resend requests only once and ignore all other duplicates.

Default value: 2

The following conditions cause the FIX Engine to consider resend requests as duplicates:

  • The batch of messages that is to be resent, specified by the interval determined by the tags BeginSeqNo (7) & EndSeqNo (16), is the same
  • Resend requests are received while the FIX engine is processing other resend requests
Info

Ignoring resend requests is not compliant with the FIX Standard Protocol.

The FIX Standard Protocol recommends responding to every resend request received, which can make engine behavior unstable and lead to unexpected traffic growth.

Info

To follow the FIX Standard Protocol, DuplicateResendRequestLimit should be set to ‘0’.

Responding to every resend request is not the recommended behavior for FIX Antenna C++ products because doing so may lead to an infinite resend loop when one of the counterparties can’t process a batch of messages properly and initiates a resend request for the same batch of messages again and again. By reducing the volume of outgoing messages and duplicate responses, traffic is minimized and applications on both sides are made more stable.

ThirdPartyRoutingIsEnabled

FIX Engine has inbuilt FIX message routing capability and fully supports the "Deliver To On Behalf Of" mechanism as specified by the FIX protocol.

If this parameter is set to "true", the Engine redirects FIX messages automatically to other FIX sessions it maintains if the OnBehalfOfCompID field in the message is defined. If this parameter is set to "false", Engine directs all messages received to the client application.

DelayedProcessing.DeliveryTriesInterval

This parameter specifies the time interval between attempts to deliver an application-level message to a registered client application in the event the application does not confirm receipt and operation upon the message.

The value is specified in milliseconds. The value must be an integer greater than 0. This parameter is required only if the DelayedProcessing.MaxDeliveryTries parameter is specified.

DelayedProcessing.MaxDeliveryTries

Optional. This parameter specifies the number of attempts that will be made to deliver an application-level message to the registered client application.

If this value is exceeded then the session will be closed with the logout reason "Application not available".

The recommended value is 10. The value must be an integer and not negative.

Reconnect.Interval

This parameter specifies the time interval between reconnection attempts in order to restore a communications link.

This value is specified in milliseconds (seconds*10-3).

The recommended value is 1000 for dedicated connections and private networks. Internet connections require calibration. The value must be an integer greater than 0.

Reconnect.MaxTries

This parameter specifies the number of attempts to restore the session.

The session is considered as restored if the telecommunication link was restored and the exchange of Logon messages was successful. If it is set to "-1", then the number of attempts is unlimited.

This value is an integer.

MessageTimeToLive

Optional. This parameter sets the time period after which a message rejecting is started while the session doesn't exist.

Value is specified in milliseconds (seconds*10-3), and must be an integer greater than 0.

ResendMessagesBlockSize

Resend Request resend messages by blocks.

This parameter defines how many messages proceed in the block. The value “0” means that all messages will be resent in one block. The value must be an integer and not less than 0.

Default value: 1000

ResetSeqNumAfter24hours

Optional. An option to send a Logon message with the ResetSeqNumFlag set after each 24-hour period of the session's activity to establish a new set of sequence numbers (starting with 1).

Default value: false

Info

This option does not affect sessions that use version 4.0 of the FIX protocol.

EncryptionConfigFile

Encryption config file name.

TotalOutgoingStorageMemoryLimit

Specifies the total amount of memory (in MB) that the active session may use.

0 - means infinite. When the limit is reached, the "hardest" sessions will be closed non-gracefully.

OutOfSequenceMessagesStrategy

Info

The parameter is available since FIX Antenna 2.23.0 release.

Optional. This parameter sets a strategy for processing out-of-sequence messages for a specific session.

Valid values:

  • RequestAlways - send resend request with BeginSeqNo (7) = <out-of-sequence message number>, EndSeqNo (16) =0 on any out-of-sequence message. ResendRequestBlockSize is not supported (will be used strategy RequestOnce).
  • RequestOnce - send resend request on gap (considering  ResendRequestBlockSize parameter). Duplicates of resend requests for the same interval are not sent.
  • IgnoreGap - send resend request on gap and process out-of-sequence messages.
  • Queue - use a temporary queue for storing out-of-sequence messages and process them after the gap is closed. 
Info

Is not supported for FAST sessions

Default value: Engine parameter OutOfSequenceMessagesStrategy

Info

Old parameters DeliverAppMessagesOutOfOrder, and SuppressDoubleResendRequest must be removed for a specified strategy for sessions. Old parameters have higher priority.

DeliverAppMessagesOutOfOrder

Info

The parameter is deprecated

SuppressDoubleResendRequest

Info

The parameter is deprecated

OutOfSequenceMessagesStrategy.QueueSize

Info

The parameter is available since FIX Antenna 2.23.0 release.

Optional. The size of the temporary queue for processing out-of-sequence messages (measured in a count of messages). The parameter is used if parameter OutOfSequenceMessagesStrategy=Queue.

Default value: Engine parameter OutOfSequenceMessagesStrategy.QueueSize

A queue should be cleared after exceeding the limit of out-of-sequence messages and a new resend request should be sent.

SocketOpPriority

The mode of how FIX Engine performs the socket Send/Receive operations.

Valid values:

  • EVEN (default) - FIX Engine uses the thread pool and share a worker thread among all session with this SocketOpPriority=EVEN
  • AGGRESSIVE_SEND - FIX Engine uses a dedicated thread for a session that sends outgoing messages in exceptional cases (if it would block). By default, the current thread is used
  • AGGRESSIVE_SEND_ASYNC - FIX Engine uses a dedicated thread for a session that sends all outgoing messages to the queue without trying to send them to the socket first. This mode aims to reduce the time spent on the execution of the session:put method and reduce the impact of slow consumers on the application by parallelizing the socket operations by default. 
  • AGGRESSIVE_RECEIVE - FIX Engine uses a dedicated thread for a session that receives incoming messages. The engine constantly polls the data from the socket for achieving the minimum latency (See AggressiveReceiveDelay)
  • AGGRESSIVE_SEND_AND_RECEIVE - FIX Engine uses two dedicated threads per session. One for receiving and another for sending messages in exceptional cases (if it would block).
  • DIRECT_SEND - FIX Engine uses the current thread for sending if this would block, performs as "EVEN".

    Info

    DIRECT_SEND mode is available since FIX Antenna 2.23.0 release.

    AGGRESSIVE_SEND_ASYNC is available since FIX Antenna 2.30.0 release.


AggressiveReceiveDelay

Optional. Defines a polling interval in microseconds for reading data from the socket.

Works only with aggressive sessions i.e. AGGRESSIVE_RECEIVE or AGGRESSIVE_SEND_AND_RECEIVE modes. Setting a lower value reduces the latency but causes high CPU utilization.

Default value: AggressiveReceiveDelay = 500

Info

There is no delay after an attempt to receive a message if the socket buffer is still not empty.

AggressiveAsyncSpinWaitTimeUs

Info

The parameter is available since FIX Antenna 2.2330.0 release.

Optional.

The size of the temporary queue for processing out-of-sequence messages (measured in a count of messages). The parameter is used if parameter OutOfSequenceMessagesStrategy=Queue.

Default value: Engine parameter OutOfSequenceMessagesStrategy.QueueSize

A queue should be cleared after exceeding the limit of out-of-sequence messages and a new resend request should be sent.

SocketOpPriority

The mode of how FIX Engine performs the socket Send/Receive operations

Defines the amount of time during which the message must be sent in the AGGRESSIVE_SEND_ASYNC mode.

Valid values:

  • EVEN (default) - FIX Engine uses the thread pool and share a worker thread among all session with this SocketOpPriority=EVEN
  • AGGRESSIVE_SEND - FIX Engine uses a dedicated thread for a session that sends outgoing messages in exceptional cases (if it would block). By default, the current thread is used
  • AGGRESSIVE_SEND_ASYNC - FIX Engine uses a dedicated thread for a session that sends all outgoing messages to the queue without trying to send them to the socket first. This mode aims to reduce the time spent on the execution of the session:put method and reduce the impact of slow consumers on the application by parallelizing the socket operations by default. 
  • AGGRESSIVE_RECEIVE - FIX Engine uses a dedicated thread for a session that receives incoming messages. The engine constantly polls the data from the socket for achieving the minimum latency (See AggressiveReceiveDelay)
  • AGGRESSIVE_SEND_AND_RECEIVE - FIX Engine uses two dedicated threads per session. One for receiving and another for sending messages in exceptional cases (if it would block).
  • DIRECT_SEND - FIX Engine uses the current thread for sending if this would block, performs as "EVEN".

    Info

    DIRECT_SEND mode is available since FIX Antenna 2.23.0 release.

    AGGRESSIVE_SEND_ASYNC is available since FIX Antenna 2.30.0 release.

AggressiveReceiveDelay

Optional. Defines a polling interval in microseconds for reading data from the socket.

Works only with aggressive sessions i.e. AGGRESSIVE_RECEIVE or AGGRESSIVE_SEND_AND_RECEIVE modes. Setting a lower value reduces the latency but causes high CPU utilization.

Default value: AggressiveReceiveDelay = 500

Info

There is no delay after an attempt to receive a message if the socket buffer is still not empty.

AggressiveAsyncSpinWaitTimeUs

Info

The parameter is available since FIX Antenna 2.30.0 release.

Optional. Defines the amount of time during which the message must be sent in the AGGRESSIVE_SEND_ASYNC mode.

Valid values: An integer greater or equal to 0

Default value: AgressiveAsyncSpinWaitTimeUs = 1000

OutgoingQueueBlockSize

Info

The parameter is available since FIX Antenna 2.30.0 release.

Optional. Defines the size of the memory pool block for the outgoing messages queue. Applicable for the following values of the SocketOpPriority: AGGRESSIVE_SEND, AGGRESSIVE_SEND_ASYNC, AGGRESSIVE_SEND_AND_RECEIVE.

Valid values: An integer greater than 0.

Default value: OutgoingQueueBlockSize = 4096

OutgoingQueueSize

An integer greater or equal to 0

Default value: AgressiveAsyncSpinWaitTimeUs = 1000

OutgoingQueueBlockSize

Info

The parameter is available since FIX Antenna 2.30.0 release.

Optional. Defines the size of the memory pool block for the outgoing messages queue. Applicable for the following values of the SocketOpPriority: AGGRESSIVE_SEND, AGGRESSIVE_SEND_ASYNC, AGGRESSIVE_SEND_AND_RECEIVE.

Valid values: An integer greater than 0.

Default value: OutgoingQueueBlockSize = 4096

OutgoingQueueSize

Info

The parameter is available since FIX Antenna 2.30.0 release.

Optional. Defines the amount of memory pool blocks for the outgoing messages queue. Applicable for the following values of the SocketOpPriority: AGGRESSIVE_SEND, AGGRESSIVE_SEND_ASYNC, AGGRESSIVE_SEND_AND_RECEIVE.

Valid values: An integer greater than 0.

Default value: OutgoingQueueSize = 15

Schedule

Optional. Specifies a defined schedule for the session.

There is no defined schedule by default. See details in the Programmer's Guide

SSL

Info
The parameter is available since FIX Antenna 2.26.0 release.

For Initiator FIX Session:

Mandatory if SSL is used. Enable SSL support for the session.












Default value: false

For Acceptor FIX Session:

Optional. If true, accept SSL connection only. If false, accept both SSL and non-SSL connections for the session.












Default value: false

ParserVersion

Info

The parameter is available since FIX Antenna 2.25.1 release.

Name of unique parser for FIX protocol. It is an identification of the FIX dictionary used for the session, i.e. the value of the 'id' parameter or in the case of QuickFIX dictionary it's a filename.

Valid values:

  • FIX40

  • FIX41

  • FIX42

  • FIX43

  • FIX44,

  • FIXT11@FIX50

  • FIXT11@FIX50SP1

  • FIXT11@FIX50SP2

  • <user's transport version>@<user's protocol version>

Info
  • Standard parsers are automatically generated to support all standard FIX protocol versions up to the latest, including FIXLatest. These parsers are named according to the versions they support, like FIX42 for FIX version 4.2.
  • When only an application version is specified (e.g., FIX42), FIX Antenna selects the standard parser that supports the requested version.
  • For custom parsers (e.g., defined as MyCustomParser@FIXT11:FIX50SP2), specified with a name ending in '@' (e.g., MyCustomParser@), FIX Antenna uses that specific parser exactly.
  • With a template string (e.g., FIXT11:FIX44, FIX50SP2), FIX Antenna may select a standard parser that covers the requested versions and potentially more.


Info

Since FIX Antenna C++ 2.30.0 release the applied parser will be logged as a general parameter on session start-up in the following format:

applied ParserVersion = [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...]

Where:

  • UNIQUE_PARSER_NAME - optional, name of the parser.
  • FIXT_PROTOCOL1 - optional, session protocol. Required if APP_PROTOCOL doesn't contain session messages.
  • APP_PROTOCOL1 - required, application protocol.
  • APP_PROTOCOL2, ... - optional, list of other application protocols. 


Role

Info

The parameter is available since FIX Antenna 2.3025.0 1 release.

Optional. Defines the amount of memory pool blocks for the outgoing messages queue. Applicable for the following values of the SocketOpPriority: AGGRESSIVE_SEND, AGGRESSIVE_SEND_ASYNC, AGGRESSIVE_SEND_AND_RECEIVE.

Valid values: An integer greater than 0.

Default value: OutgoingQueueSize = 15

Schedule

Optional. Specifies a defined schedule for the session.

There is no defined schedule by default. See details in the Programmer's Guide

SSL

Role of the session.

Possible values:

  • Initiator
  • Acceptor

Host

Info

The parameter is available since FIX Antenna 2.25.1 release.

The destination host for the initiator session.

Port

Info

The parameter is available since FIX Antenna 2.25.1 release.

TCP port for connection to the remote site.

ListenPort

Info

The parameter is available since FIX Antenna 2.

26

28.0 release.

For Initiator FIX Session:

Mandatory if SSL is used. Enable SSL support for the session.
Default value: false

For Acceptor FIX Session:

Optional. If true, accept SSL connection only. If false, accept both SSL and non-SSL connections for the session.
Default value: false

ParserVersion

Info

The parameter is available since FIX Antenna 2.25.1 release.

Name of unique parser for FIX protocol. It is an identification of the FIX dictionary used for the session, i.e. the value of the 'id' parameter or in the case of QuickFIX dictionary it's a filename.

Valid values:

  • FIX40

  • FIX41

  • FIX42

  • FIX43

  • FIX44,

  • FIXT11@FIX50

  • FIXT11@FIX50SP1

  • FIXT11@FIX50SP2

  • <user's transport version>@<user's protocol version>
Info

Since FIX Antenna C++ 2.30.0 release the applied parser will be logged as a general parameter on session start-up in the following format:

applied ParserVersion = [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...]
 
Where:

  • UNIQUE_PARSER_NAME - optional, name of the parser.
  • FIXT_PROTOCOL1 - optional, session protocol. Required if APP_PROTOCOL doesn't contain session messages.
  • APP_PROTOCOL1 - required, application protocol.
  • APP_PROTOCOL2, ... - optional, list of other application protocols. 

RolePort dedicated for a session.

For acceptors, it is a port that listens to incoming connections for a specified session.

Info

The same incoming port cannot be reused for several sessions.

If the parameter is not set for the session or not set for the entire application (ListenPort), FIX Engine will not accept the connection.

The Engine stops accepting connections to the given port when the session is no longer used, i.e. terminated. For example, the session is terminated according to the schedule.

ListenAddress

Info

The parameter is available since FIX Antenna 2.28.0 release.

The local IP address of the network interface accepting a specified session. 

Default value: 0.0.0.0 - listens to connections on all network interfaces.


SourceIPAddress

The expected IP address of a remote counterparty. Incoming connections from other endpoints will be filtered out.

If the real value is not equal to the expected one, then the connections are dropped without sending a message and the error condition is generated in the log output.

The parameter supports masks. For example: 10.96.0.0/11

Default value:  0.0.0.0 - accepts all connections from IP addresses on every network interface.

HBI

Info

The parameter is available since FIX Antenna 2.25.1 release.

Role of the The heartbeat interval is in seconds for the initiator session.

Possible values:

  • Initiator
  • Acceptor
Host

CustomLogonMessageFileName


Info

The parameter is parameter is available since FIX Antenna 2.25.1 release.

The destination host Optional. This property defines the path to the file with a custom Logon message for the initiator session.

Port

Default value: empty

TagsDelimiter

Info

The parameter is available since FIX Antenna 2.2528.1 0 release.

TCP port for connection to the remote site.

ListenPort

The character is used as a tag delimiter in a FIX message. Refer to How to use a custom symbol instead of SOH.

Default value: '0x01' (SOH)

ResetSeqNumFromFirstLogon

Info

The parameter is available since FIX Antenna 2.28.0 release.

Port dedicated for a session.

For acceptors, it is a port that listens to incoming connections for a specified session.

Info

The same incoming port cannot be reused for several sessions.

If the parameter is not set for the session or not set for the entire application (ListenPort), FIX Engine will not accept the connection.

The Engine stops accepting connections to the given port when the session is no longer used, i.e. terminated. For example, the session is terminated according to the schedule.

ListenAddress

This parameter provides the ability to reset a session’s sequence numbers to the ones received in the Logon message in the case where session sequence numbers seem outdated.

The following fields control the frequency with which the sequence numbers are reset:

  • ‘never’ – sequence numbers do not reset at logon
  • ‘schedule’ – sequence numbers reset according to an existing schedule defined by the schedule parameter of the session, initiated by a first-time logon message
  • cron expression – sequence numbers reset according to a customizable date and time, initiated by a first-time logon message

Default value: never

This parameter can be added via the engine.properties file for the acceptor session or set it via API.

ResetSeqNumOnNonGracefulTermination

Info

The parameter is available since FIX Antenna 2.28.0 release.

The local IP address of the network interface accepting a specified session. 

Default value: 0.0.0.0 - listens to connections on all network interfaces.

SourceIPAddress

The expected IP address of a remote counterparty. Incoming connections from other endpoints will be filtered out.

If the real value is not equal to the expected one, then the connections are dropped without sending a message and the error condition is generated in the log output.

The parameter supports masks. For example: 10.96.0.0/11

Default value:  0.0.0.0 - accepts all connections from IP addresses on every network interface.

HBI

Info

The parameter is available since FIX Antenna 2.25.1 release.

The heartbeat interval is in seconds for the initiator session.

CustomLogonMessageFileName

Info

The parameter is available since FIX Antenna 2.25.1 release.

Optional. This property defines the path to the file with a custom Logon message for the initiator.

Default value: empty

TagsDelimiter

Info

The parameter is available since FIX Antenna 2.28.0 release.

The character is used as a tag delimiter in a FIX message. Refer to How to use a custom symbol instead of SOH.

Default value: '0x01' (SOH)

ResetSeqNumFromFirstLogon

Info

The parameter is available since FIX Antenna 2.28.0 release.

This parameter provides the ability to reset a session’s sequence numbers to the ones received in the Logon message in the case where session sequence numbers seem outdated.

The following fields control the frequency with which the sequence numbers are reset:

  • ‘never’ – sequence numbers do not reset at logon
  • ‘schedule’ – sequence numbers reset according to an existing schedule defined by the schedule parameter of the session, initiated by a first-time logon message
  • cron expression – sequence numbers reset according to a customizable date and time, initiated by a first-time logon message

Default value: never

This parameter can be added via the engine.properties file for the acceptor session or set it via API.

ResetSeqNumOnNonGracefulTermination

Info

The parameter is available since FIX Antenna 2.28.0 release.

This parameter provides the option, upon a session’s non-graceful termination, to reset sequence numbers. To use this functionality, set it to ‘true’.  Then, following non-graceful termination, ingoing and outgoing sequence numbers will be reset to 1.

Default value: false

If the parameter is set to ‘false’, incoming and outgoing sequence numbers will not be reset following non-graceful termination.

This parameter can be added via the engine.properties file for the acceptor session or set it via API.

ConfirmingLogonStrategy

This parameter controls the engine’s behavior when a Logout (5) message is received instead of confirming Logon (A) during a FIX login procedure.

FIX engine supports the following strategies:

Value

Response

'RejectLogout'

Reject unexpected Logout (5) message and send a Logout message with the reason ‘The Logon message expected!’ to the counterparty.

The event is logged with the notification "Option ConfirmingLogonStrategy is set to RejectLogout. The Logout messages received in response to Logon will be treated as an unexpected behavior.and the connection is terminated in this case.

'ConfirmLogout'

Accepts the unexpected Logout (5) message and send a Logout with the reason ‘Confirming Logout’ message to the counterparty.

The expected MsgSeqNum of the next incoming sequence number is updated if there is no gap detected.

FIX Engine switches session's state to CORRECTLY_TERMINATED

'SilentLogout'

FIX Engine switches the session's state to NON_GRACEFULLY_TERMINATED without sending messages to the counterparty.

The expected MsgSeqNum of the next incoming sequence number is updated if there is no gap detected

Default value: RejectLogout

ConnectAddress

Optional. Engine's local IP address to send messages from.

It is used only for hosts with multiple networks. If this parameter is commented, empty, or equal to 0.0.0.0 the Engine will send IP datagrams from any/all local addresses.

ConnectPort

An outbound port is used to connect to the counter-party. The parameter applies only if the parameter ConnectAddress is specified, for using a port and any network interface ConnectAddress should be set to 0.0.0.0.

Info

Do not confuse this parameter with the Port specifying the destination port. 

Optional. The default value is 0 letting the operating system decide what outbound port will be used.

The value of this parameter can't be equal to the value of ListenPort because this port is already occupied by the system.

CustomRawDataTagStrategies

CustomRawDataTagStrategies.<N>.Encoding

CustomRawDataTagStrategies.<N>.Strategy

CustomRawDataTagStrategies.<N>.Tag

CustomRawDataTagStrategies.Count

CustomSessionType

Specifies a type of session type with specific encryption or authentication rules.

Default value: GENERIC

FixKey

Mandatory if CustomSessionType = LME_SELECT.

Specifies a FIX key for LME sessions.

CMESecureKeysFile

Info

The parameter is available since FIX Antenna 2.23.0 release.

Mandatory if CustomSessionType = CME_SECURE_LOGON.

Specifies a path to CME key files used for CME secure logon.

EnableCyclicSwitchBackupConnection

Defines if there should be an auto switch to the primary connection in case a backup connection is used and it erupted.

When set to 'true', a connection will be switched from primary to backup and back until the connection will be established.

Default value: false

EnableAutoSwitchToBackupConnection

Defines if there should be an auto switch to the backup connection in case the primary connection is used and it is interrupted.

Valid values:

  • true - to enable EnableAutoSwitchToBackupConnection mode;
  • false - to disable EnableAutoSwitchToBackupConnection mode.

DisableTCPBuffer

When set to 'true', the TCP buffer (Nagle algorithm) will be disabled for a session.

Default value: false

EnableFastScp

EnableMessageRejecting

When set to 'true', the session rejects application messages when the session is unable to send them during a specified period or was disconnected.

Default value: false

EncryptMethod

FASTCodecParameters.BoolNtoString

FASTCodecParameters.BoolYtoString

ForcedReconnect

When set to 'true' the session will try to reconnect when:

  1. In the WaitForConfirmLogon state, when the session received an unconfirmed logon

  2. In the WaitForConfirmLogon state, when the logon frame has expired

  3. In Reconnect state, when the session was closed.

Default value: false

GenerateCheckSum

If set to 'false', the session will not calculate CRC for outgoing messages.

Default value: true

HandleSeqNumAtLogon

HiddenLogonCredentials

Masks password in in/out log files

Default value: false

IgnoreSeqNumTooLowAtLogon

When set to 'true', the session ignores 'SeqNum too low' at an incoming Logon message and continues with the received SeqNum.

Default value: false

IntradayLogoutToleranceMode

If set to 'false' FIX Engine ends the trading day for the session after Logout (5) from the counterparty and the session becomes correctly terminated. A sequence number reset is expected after receiving the logout.

If set to 'true' FIX Engine will be able to re-establish the session multiple times and treats every disconnection as an unexpected switching session to a NON-GRACEFULLY TERMINATED state. This option is recommended if multiple reconnections are expected during the trading session.

Default value: false

IsForwardingFixMessagesToLog

KeepConnectionState

Optional. This property defines whether primary to backup (and vice versa) connection switching continues using existing messages storage.

Valid values: 'true' | 'false'

Default value: true

LogDirectory

Info

The parameter is available since FIX Antenna 2.30.0 release.

Optional.Defines the path to the directory in which logs of the primary connection of the session are stored.

If this property is not specified with value then the value of the LogDirectory will be used.

LogonMessageSessionQualifierTag

Defines the tag of the field to be used by FIX Engine when dispatching an incoming connection.
SessionQualifier is passed in this field. SenderCompID(49), TargetCompID(56), and this field are used for searching for the appropriated acceptor among existing registered acceptors. The field is optional if the application doesn't intend to accept an incoming connection.
See also SessionId and SessionQualifier Notes 

MaskedTags

Optional. This parameter contains a list of sensitive tags whose values should be masked in the log files (for example, Username and Password). These tag values in in/out log files for the messages of A, BE, BF, n types will be replaced with ***. 

Example: FixLayer.FixEngine.Session.TestFIXAcceptor.MaskedTags = 554,553.

The message will be written to the log file in the following way: 8=FIX.4.4^9=85^35=A^49=a_t1^56=a_s1^34=1^52=20161005-17:29:14.339^98=0^108=10^141=Y^553=***^554=***^10=176^

Masks are also applied to User Modification messages (MsgType = CB).

MaxMessagesAmountInBunch

Enqueued outgoing messages could be merged and sent as a single batch with the size specified by this parameter.

Default value: 0 (means infinite amount).

MessagesStorageSize

This parameter specifies in-memory messages storage size.

Default value: 20000.

Password

User's password for the session

  • For initiator: The value of this field will be transferred to the acceptor in the Password (Tag 554) field of the Logon(A) message;

  • For acceptor: The value of this field will be compared to the value of the Password (Tag 554) field of the incoming Logon(A) message. If values are not equal, Logon will be rejected

    This parameter provides the option, upon a session’s non-graceful termination, to reset sequence numbers. To use this functionality, set it to ‘true’.  Then, following non-graceful termination, ingoing and outgoing sequence numbers will be reset to 1.

    Default value: false

    If the parameter is set to ‘false’, incoming and outgoing sequence numbers will not be reset following non-graceful termination.

    This parameter can be added via the engine.properties file for the acceptor session or set it via API.

    ConfirmingLogonStrategy

    This parameter controls the engine’s behavior when a Logout (5) message is received instead of confirming Logon (A) during a FIX login procedure.

    FIX engine supports the following strategies:

    Value

    Response

    'RejectLogout'

    Reject unexpected Logout (5) message and send a Logout message with the reason ‘The Logon message expected!’ to the counterparty.

    The event is logged with the notification "Option ConfirmingLogonStrategy is set to RejectLogout. The Logout messages received in response to Logon will be treated as an unexpected behavior.and the connection is terminated in this case.

    'ConfirmLogout'

    Accepts the unexpected Logout (5) message and send a Logout with the reason ‘Confirming Logout’ message to the counterparty.

    The expected MsgSeqNum of the next incoming sequence number is updated if there is no gap detected.

    FIX Engine switches session's state to CORRECTLY_TERMINATED

    'SilentLogout'

    FIX Engine switches the session's state to NON_GRACEFULLY_TERMINATED without sending messages to the counterparty.

    The expected MsgSeqNum of the next incoming sequence number is updated if there is no gap detected

    Default value: RejectLogout

    ConnectAddress

    Optional. Engine's local IP address to send messages from.

    It is used only for hosts with multiple networks. If this parameter is commented, empty, or equal to 0.0.0.0 the Engine will send IP datagrams from any/all local addresses.


    ConnectPort

    An outbound port is used to connect to the counter-party. The parameter applies only if the parameter ConnectAddress is specified, for using a port and any network interface ConnectAddress should be set to 0.0.0.0.

    Info

    Do not confuse this parameter with the Port specifying the destination port. 

    Optional. The default value is 0 letting the operating system decide what outbound port will be used.

    The value of this parameter can't be equal to the value of ListenPort because this port is already occupied by the system.

    CustomRawDataTagStrategies

    CustomRawDataTagStrategies.<N>.Encoding

    CustomRawDataTagStrategies.<N>.Strategy

    CustomRawDataTagStrategies.<N>.Tag

    CustomRawDataTagStrategies.Count

    CustomSessionType

    Specifies a type of session type with specific encryption or authentication rules.

    Default value: GENERIC

    FixKey

    Mandatory if CustomSessionType = LME_SELECT.

    Specifies a FIX key for LME sessions.

    CMESecureKeysFile

    Info

    The parameter is available since FIX Antenna 2.23.0 release.

    Mandatory if CustomSessionType = CME_SECURE_LOGON.

    Specifies a path to CME key files used for CME secure logon.

    EnableCyclicSwitchBackupConnection

    Defines if there should be an auto switch to the primary connection in case a backup connection is used and it erupted.

    When set to 'true', a connection will be switched from primary to backup and back until the connection will be established.

    Default value: false

    EnableAutoSwitchToBackupConnection

    Defines if there should be an auto switch to the backup connection in case the primary connection is used and it is interrupted.

    Valid values:

    • true - to enable EnableAutoSwitchToBackupConnection mode;
    • false - to disable EnableAutoSwitchToBackupConnection mode.

    DisableTCPBuffer

    When set to 'true', the TCP buffer (Nagle algorithm) will be disabled for a session.

    Default value: false

    EnableFastScp

    EnableMessageRejecting

    When set to 'true', the session rejects application messages when the session is unable to send them during a specified period or was disconnected.

    Default value: false

    EncryptMethod

    FASTCodecParameters.BoolNtoString

    FASTCodecParameters.BoolYtoString

    ForcedReconnect

    When set to 'true' the session will try to reconnect when:

    1. In the WaitForConfirmLogon state, when the session received an unconfirmed logon

    2. In the WaitForConfirmLogon state, when the logon frame has expired

    3. In Reconnect state, when the session was closed.

    Default value: false

    GenerateCheckSum

    If set to 'false', the session will not calculate CRC for outgoing messages.

    Default value: true

    HandleSeqNumAtLogon

    HiddenLogonCredentials

    Masks password in in/out log files

    Default value: false

    IgnoreSeqNumTooLowAtLogon

    When set to 'true', the session ignores 'SeqNum too low' at an incoming Logon message and continues with the received SeqNum.

    Default value: false

    IntradayLogoutToleranceMode

    If set to 'false' FIX Engine ends the trading day for the session after Logout (5) from the counterparty and the session becomes correctly terminated.  A sequence number reset is expected after receiving the logout.

    If set to 'true' FIX Engine will be able to re-establish the session multiple times and treats every disconnection as an unexpected switching session to a NON-GRACEFULLY TERMINATED state. This option is recommended if multiple reconnections are expected during the trading session.

    This parameter overrides the global IntradayLogoutTolerance setting.

    Default value: false

    InvalidLogonStrategy

    Info
    The parameter has been available since the FIX Antenna 2.32.0 release.

    Optional. This property defines how Acceptor and Initiator respond to invalid Logon messages. The parameter may be configured on the default session level.

    Valid values:

    • RejectAndLogout (send both Reject (35=3) and Logout (35=5) messages)
    • Logout (send only a Logout (35=5) message).

    Default value: Logout


    IsForwardingFixMessagesToLog

    KeepConnectionState

    Optional. This property defines whether primary to backup (and vice versa) connection switching continues using existing messages storage.

    Valid values: 'true' | 'false'

    Default value: true

    LogDirectory

    Info

    The parameter is available since FIX Antenna 2.30.0 release.

    Optional.Defines the path to the directory in which logs of the primary connection of the session are stored.

    If this property is not specified with value then the value of the LogDirectory will be used.

    LogonMessageSessionQualifierTag

    Defines the tag of the field to be used by FIX Engine when dispatching an incoming connection.












    SessionQualifier is passed in this field. SenderCompID(49), TargetCompID(56), and this field are used for searching for the appropriated acceptor among existing registered acceptors. The field is optional if the application doesn't intend to accept an incoming connection.












    See also SessionId and SessionQualifier Notes 

    MaskedTags

    Optional. This parameter contains a list of sensitive tags whose values should be masked in the log files (for example, Username and Password). These tag values in in/out log files for the messages of A, BE, BF, n types will be replaced with ***. 

    Example: FixLayer.FixEngine.Session.TestFIXAcceptor.MaskedTags = 554,553.

    The message will be written to the log file in the following way: 8=FIX.4.4^9=85^35=A^49=a_t1^56=a_s1^34=1^52=20161005-17:29:14.339^98=0^108=10^141=Y^553=***^554=***^10=176^

    Masks are also applied to User Modification messages (MsgType = CB).

    MaxMessagesAmountInBunch

    Enqueued outgoing messages could be merged and sent as a single batch with the size specified by this parameter.

    Default value: 0 (means infinite amount).

    MessagesStorageSize

    This parameter specifies in-memory messages storage size.

    Default value: 20000.

    Password

    The user's password for the session.

    • For initiator: The value of this field will be transferred to the acceptor in the Password (Tag 554) field of the Logon(A) message;

    • For acceptor: The value of this field will be compared to the value of the Password (Tag 554) field of the incoming Logon(A) message. If values are not equal, Logon will be rejected.

    Info

    The ability to export the Password value from the vault (i.e. Azure Key Vault) is available since the FIX Antenna C++ 2.32.0 release.

    FIX Antenna C++ provides the ability to export the Password value from the vault using a script. This can be achieved by defining the Password property in the engine.properties file in the following format:

    • Session.Session_Name.Password = script://@[timeout=<value>, trim]<path_to_script>

    Where

    • timeout -is anoptional attribute that defines the time interval to wait for successful script execution. If this attribute is not defined, then 5 sec will be used by default.
    • trim - is an optional attribute that defines whether the value returned by the script should be trimmed. If this attribute is present, then the line break symbol will be deleted from the Password value received from the vault.
    • path to script - is a path to the script that will be used to get the Password from the vault. If the path is relative, it must be relative to the current working directory.
    Info

    This feature additionally allows the execution of procedural scripts, if necessary.

    PasswordTag

    Specifies a tag used to store a password

    ReconnectInterval

    This parameter specifies the time interval between reconnection attempts in order to restore a communications link.












    This value is specified in milliseconds. The recommended value is 1000 for dedicated connections and private networks. Internet connections may require calibration.

    The value must be an integer greater than 0.

    Default value: 1000.

    ReconnectMaxTries

    This parameter specifies the number of attempts to restore the session.

    The session is considered as restored if the telecommunication link was restored and the exchange of Logon messages was successful. If it is set to "-1", then the number of attempts is unlimited.

    Default value: 3

    ResendRequestBlockSize

    Defines the number of messages requested using Resend Request messages.

    If the message sequence gap is larger than SessionExtraParameters::resendRequestBlockSize_Session will split resend requests by blocks of SessionExtraParameters::resendRequestBlockSize_ size.

    Default value: -1

    SenderLocationID

    SenderLocationID (142) assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader).

    The property is ignored if it is not specified.

    SenderSubID

    SenderSubID (50) assigned value used to identify specific message originator (desk, trader, etc.).

    The property is ignored if it is not specified.

    SendingTimestampUnit

    Info

    The parameter is available since FIX Antenna 2.20.0 release.

    Defines the precision of the timestamp to be specified in tags SendingTime (52) and OrigSendingTime (122) in the outgoing message.

    Valid values:

    • second
    • millisecond
    • microsecond
    • nanosecond

    Default values:

    SendLastMsgSeqNumProcessed

    SocketBusyPollTime

    SocketRecvBufSize

    Socket incoming buffer size.

    Default value: -1 (unlimited)

    SocketSendBufSize

    Socket outgoing buffer size.

    Default value: -1 (unlimited).

    SocketTcpMaxSeg

    StorageRecoveryStrategy

    StorageType

    Message storage type

    Valid values:

    • persistent - save messages to the disk
    • persistentMM  - save messages to the disk using memory-mapped files
    • splitPersistent - save messages to the disk and limit maximum storage size
    • transient - keep messages in memory
    • null - do not keep the session state at all

    Default value: persistentMM

    TargetLocationID

    TargetLocationID (143) assigned value used to identify specific message destination's location (i.e. geographic location and/or desk, trader).

    The property is ignored if it is not specified.

    TargetSubID

    TargetSubID (57) assigned value used to identify a specific individual or unit intended to receive the message.

    'ADMIN' is reserved for administrative messages not intended for a specific user.

    The property is ignored if it is not specified.

    Transport

    Low-level transport of the session.

    Valid values:

    • SOCKETS - Kernel sockets
    • MYRICOM_DBL - Myricom DBL sockets

    Default value: SOCKETS

    UseAsyncConnect

    When set to 'true', the session initiator will use async TCP connect.

    Default value: false

    UseBlockingSockets

    If set to 'true', the session will use blocking I/O.
    This mode is useful for OpenOnload and is enabled if the aggressive mode is ON. AggressiveReceiveDelay or Engine::SessionExtraParameters::aggressiveReceiveDelay_ are used as a timeout parameter.
    See also:

    Default value: false 

    Username

    User name for the session.

  • For initiator: The value of this field will be transferred to the acceptor in the Username (Tag 553) field of the Logon(A) message;

  • For acceptor: The value of this field will be compared to the value of the Username (Tag 553) field of the incoming Logon(A) message. If values are not equal, Logon will be rejected

    Socket incoming buffer size.

    Default value: -1 (unlimited)

    SocketSendBufSize

    Socket outgoing buffer size.

    Default value: -1 (unlimited).

    SocketTcpMaxSeg

    StorageRecoveryStrategy

    StorageType

    Message storage type

    Valid values:

    • persistent - save messages to the disk
    • persistentMM  - save messages to the disk using memory-mapped files
    • splitPersistent - save messages to the disk and limit maximum storage size
    • transient - keep messages in memory
    • null - do not keep the session state at all

    Default value: persistentMM

    TargetLocationID

    TargetLocationID (143) assigned value used to identify specific message destination's location (i.e. geographic location and/or desk, trader).

    The property is ignored if it is not specified.

    TargetSubID

    TargetSubID (57) assigned value used to identify a specific individual or unit intended to receive the message.

    'ADMIN' is reserved for administrative messages not intended for a specific user.

    The property is ignored if it is not specified.

    Transport

    Low-level transport of the session.

    Valid values:

    • SOCKETS - Kernel sockets
    • MYRICOM_DBL - Myricom DBL sockets

    Default value: SOCKETS

    UseAsyncConnect

    When set to 'true', the session initiator will use async TCP connect.

    Default value: false

    UseBlockingSockets

    If set to 'true', the session will use blocking I/O.
    This mode is useful for OpenOnload and is enabled if the aggressive mode is ON. AggressiveReceiveDelay or Engine::SessionExtraParameters::aggressiveReceiveDelay_ are used as a timeout parameter.
    See also:

    Default value: false 

    Username

    User name for the session.

    • For initiator: The value of this field will be transferred to the acceptor in the Username (Tag 553) field of the Logon(A) message;

    • For acceptor: The value of this field will be compared to the value of the Username (Tag 553) field of the incoming Logon(A) message. If values are not equal, Logon will be rejected.

    Info

    The ability to export the Username value from the vault (i.e. Azure Key Vault) is available since the FIX Antenna C++ 2.32.0 release.

    FIX Antenna C++ provides the ability to export the Username value from the vault using a script. This can be achieved by defining the Username property in the engine.properties file in the following format:

    • Session.Session_Name.Username = script://@[timeout=<value>, trim]<path_to_script>

    Where

    • timeout -is anoptional attribute that defines the time interval to wait for successful script execution. If this attribute is not defined, then 5 sec will be used by default.
    • trim - is an optional attribute that defines whether the value returned by the script should be trimmed. If this attribute is present, then the line break symbol will be deleted from the Username value received from the vault.
    • path to script - is a path to the script that will be used to get the Username from the vault. If the path is relative, it must be relative to the current working directory.
    Info

    This feature additionally allows the execution of procedural scripts, if necessary.

    UsernameTag

    Specifies a tag used to store a username

    Storages

    LogIncomingMessages

    This property provides an option to log incoming FIX messages (those received) from a counterparty FIX Engine.

    They will be stored in the directory specified by the LogDirectory parameter in a file with the extension "*.in".

    Info

    Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false.

    OutgoingMessagesStorageSize

    This parameter defines the upper limit to the number of outgoing messages that are resent in the event of a Resend Request.

    The recommended value is 20000 if no data on mean activity is known.

    Info

    Changing this value will impact the performance of FIX Engine. Large storage increases the application working set.

    ExtraSafeMode

    If this parameter is set to 'true' then file streams are flushed after each I/O operation.

    Info

    Changing this value will impact the performance of FIX Engine. In development and in production should be true.

    TimestampsInLogs

    Optional. An option to write timestamps in the log files.

    Default value: true.

    Info

    Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false.

    EnableIncrementalLogFileCreation

    Setting the property "true" will reserve 10MB of disc space for logging.

    If the log reaches 10Mbs, another 10Mbs will be reserved, and so on. When a property is set to 'true' FixAntenna performance is greatly increased.

    Persistents.LogIncrementSize

    Specifies the amount of memory in bytes reserved for memory-mapped file message storage for *.out/*.in files.

    It defines how FIX Antenna reserves space on the HDD for PersistentMM (in any cases) and Persistent (if EnableIncrementalLogFileCreation is ON). It is recommended to set a large enough value to minimize the number of resizes during the storage lifetime. Each resize can cause a latency spike.

    Info

    Changing this value will impact the performance of FIX Engine.

    Persistents.IdxIncrementSize

    Specifies the amount of memory in bytes reserved for memory-mapped file message storage for *.idx file It defines how FIX Antenna reserves space on the HDD for PersistentMM (in any cases) and Persistent (if EnableIncrementalLogFileCreation is ON).

    It is recommended to set a large enough value to minimize the number of resizes during the storage lifetime. Each resize can cause a latency spike.

    Info

    Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false.

    Persistents.MinDiskSpace

    Info

    This parameter is available since FIX Antenna 2.30.0 release.

    This property specifies the minimal disk space in Mb available on the session's logs device in order to start the session.

    Default value: 50

    SplitPersistentMsgStorage.BackupDir

    This property is the path to the directory, where sliced message storage will search for log files in case they are not found in the primary location.

    It is the user's responsibility to move files from the primary location to the backup.

    Default value: empty - backup path disabled

    SplitPersistentMsgStorage.MaxSliceSize

    Specifies the maximum size of one slice for sliced message storage.

    Info

    Storage slices are created with steps, specified by Persistents.LogIncrementSize parameter value. If the MaxSliceSize value is no multiple of Persistents.LogIncrementSize, the result file size will be less than specified. If value is less than LogIncrementSize, LogIncrementSize value will be used.

    Recommended value: any multiple of Persistents.LogIncrementSize.

    Default value: 500000000 - 500Mb

    MessageStorage.IndexRebuildEnabled

    Optional. If this parameter is set to 'true', FIX Engine will try to restore the index file from the log file in case the index file is missed or corrupted.

    Default value: false

    Info

    Please be careful when you enable this property: restoring process uses some heuristic algorithms, and some data (not messages) could be missed.

    MessageStorage.RequireRejectFlagSupport

    Optional. If this option is enabled, FIX Engine will not rebuild index files for message storage, that does not support the embedded Reject Flag Marker.

    Default value: true

    MessageStorage.TimestampUnit

    Optional. This property specifies precision of timestamps in session logs (.in / .out storage files). 

    Possible values: "millisecond", "microsecond", "nanosecond".

    Default value: millisecond

    NewFeatures.EnableOptimizedPersistentMMIndex

    Optional. This property enables the method of maintaining the start-up of FIX sessions with log files in the PersistentMM storage marked with the 'correctly stored' flag. If this property is set to 'true' FIXEdge will skip the check of the 'stored correctly' log files in order to improve performance.

    Valid values:

    • true - enables OptimizedPersistentMMIndex mode
    • false - disables OptimizedPersistentMMIndex mode

    Formats of PersistentMM log files with and without enabled NewFeatures.EnableOptimizedPersistentMMIndex property are incompatible.

    Default value: true

    ...

    Throttling parameters

    Please refer to the How to configure FIX messages throttling in FIX Antenna C++ page for more details.

    Info

    Throttling outgoing FIX messages is available since FIX Antenna 2.30.0 release. Throttling incoming FIX messages is available since FIX Antenna 2.31.0 release.

    Throttlers

    Optional. The property defines the list of throttlers being configured.

    Example: Session.<SenderId>/<TargetId>.Throttlers = MyGeneralOutLimiter1, MyGeneralInLimiter2

    Throttlers.<Throttler_Name>.Direction

    Optional. The property defines the direction of the throttling.

    Valid values: Outgoing, Incoming

    Example: Session.<SenderId>/<TargetId>.Throttlers.MyGeneralOutLimiter1.Direction = Outgoing

    Throttlers.<Throttler_Name>.Type

    Optional. The property defines the type of throttling algorithm.

    Valid values: SlidingWindowMessages

    Example:Session.<SenderId>/<TargetId>.Throttlers.MyGeneralOutLimiter1.Type = SlidingWindowMessages

    Throttlers.<Throttler_Name>.MessagesLimit

    Optional. The property defines the number of messages within the time interval.

    Example: Session.<SenderId>/<TargetId>.Throttlers.MyGeneralOutLimiter1.MessagesLimit = 50

    Throttlers.<Throttler_Name>.IntervalMs

    Optional. The property defines the throttling time interval in milliseconds.

    Example: Session.<SenderId>/<TargetId>.Throttlers.MyGeneralOutLimiter1.IntervalMs = 2000

    ...

    Unregistered Acceptors parameters

    CreateUnregisteredAcceptorSession

    This parameter provides an option whereby FIX Engine will accept a FIX session for which it has no registered application (an acceptor).

    If set to 'true', Engine accepts an incoming connection and creates the corresponding Session object. If there is no application associated with the session, all application-level messages are rejected with the Application Level Reject(3) message. If an application is registered, the behavior is standard. If set to 'false', Logon messages are ignored and the incoming connection is dropped. Property is obsolete, UnregisteredAcceptor.CreateSession should be used instead.

    UnregisteredAcceptor.CreateSession

    This parameter provides an option whereby FIX Engine will accept a FIX session for which it has no registered application (an acceptor).

    If set to 'true', Engine accepts an incoming connection and creates the corresponding Session object. If there is no application associated with the session, all application-level messages are rejected with the Application Level Reject(3) message. If an application is registered, the behavior is standard. If set to 'false', Logon messages are ignored and the incoming connection is dropped.

    UnregisteredAcceptor.IgnoreSeqNumTooLowAtLogon

    This parameter allows accepting sessions with seqNum in the Logon lower than expected by FIX Engine.

    When true, the session continues with the received seqNum.

    UnregisteredAcceptor.maxMessagesAmountInBunch

    FA is able to join packages that wait for sending into the socket, these parameters control how many messages could be joined.

    0 means infinite. The value should be less than 1000000.

    UnregisteredAcceptor.RejectMessageWhileNoConnection

    When true, unregistered acceptors will reject messages in case they couldn't be sent during the interval specified in the MessageTimeToLive parameter.

    You can find more information about how to use this parameter here: How to use "RejectMessageWhileNoConnection" parameter

    UnregisteredAcceptor.tcpBufferDisabled

    When true, the TCP buffer (Nagle algorithm) will be disabled for unregistered acceptors.

    Otherwise, TCP may join and enqueue small packages until the timeout ends.

    UnregisteredAcceptor.SessionStorageType

    The default storage type of created unregistered sessions.

    Use the "transient" value to use transient storage for the sessions.

    Default value: persistentMM

    General Message Validation parameters

    Info
    These parameters apply validation on the whole application (Engine level parameters)

    MessageMustBeValidated

    Mandatory. Defines whether each message is checked for the existence of required tags.

    Valid values: 'true' | 'false'

    This parameter is equal to Validation.IsEnabled but has lower priority.

    Default value: true

    VerifyTagsValues

    Optional. Defines whether each application message is verified for tag values.

    Valid values: 'true' | 'false'

    If set to ‘true’, all messages will be verified. If set to 'false', the responsibility for message verification rests with the counterparty.

    Note: Ignored if MessageMustBeValidated = false

    Default value: true

    ProhibitUnknownTags

    If set to 'true', the FIX engine will reject messages with undefined tags in the FIX dictionary. For additional information see How to configure validation for non-user tags?

    Note: Ignored if MessageMustBeValidated = false

    Default value: false

    VerifyRepeatingGroupBounds

    Optional. Defines whether each application message is verified for repeating group size.

    Valid values: 'true' | 'false'

    If set to ‘true’, the Engine will reject messages with incorrect repeating group size. Otherwise, the message will be passed to the application layer. 

    Note: Ignored if MessageMustBeValidated = false

    Default value: true

    Info

    VerifyRepeatingGroupBounds = "false" has no effect since FIX Antenna 2.28.1 release.

    Prior to FIX Antenna version 2.28.1, VerifyRepeatingGroupBounds was called VerifyReperatingGroupBounds.

    VerifyRepeatingGroupTagsOrder

    Optional.

    Valid values: 'true' | 'false'

    If set to ‘true’, the Engine will check whether the first field of the repeating group is the same as specified in the dictionary. If it's not the same, then FIX Engine will reject the message.

    If set to 'false', the Engine will consider the first tag from the first repeating group entry as its first field so the following entries of this repeating group must have the same first field.

    Default value: false

    IgnoreUnknownFields

    If set to 'true', FIX Engine removes the undefined or user's fields from the message and this increases the performance.

    If set to 'false', FIX Engine allocates and keeps in memory the undefined or user's fields so performance is reduced but Engine doesn't truncate the data in the message. This parameter should be used along with the ProhibitUnknownTags parameter. For more details see How to configure validation for non-user tags?

    Note: Ignored if MessageMustBeValidated = false

    Default value: false

    AllowEmptyFieldValue

    Mandatory. Defines whether the raw message may contain tags without values.

    Valid values: 'true' | 'false'

    If set to ‘true’, the raw message may contain tags without values that will be ignored. Otherwise, an exception will be fired.

    Default value: false

    AllowZeroNumInGroup

    The parameter defines whether the Engine should accept repeating groups with a group size equal to '0' and no entries.

    Valid values: 'true' | 'false'

    If set to 'true', FIX Engine will accept messages as is. If set to 'false' and the VerifyTagsValues parameter is set to 'false' then the empty group will be removed from the message. Otherwise, the message will be rejected with the ERROR.

    Default value: false

    AllowMessageWithoutPossDupFlag

    ValidateCheckSum

    If set to 'truefalse', the session will skip CRC validation for incoming messages.

    Default value: true

    MaxTagNumberForValidation

    Info

    This parameter is available since FIX Antenna 2.29.0 release.

    The FIX trading community allows a user to introduce their own tags as user-defined tags. The FIX Antenna engine has special rules for the validation of user-defined tags. It will accept any tag higher than the MaxTagNumberForValidation, even if the tags are not described in the dictionary. That means that FIX Antenna will not treat these tags as unknown so validation rejects will not be generated for these kinds of tags. If the user needs to validate unknown tags higher than 4999, the user should switch the maximum value as needed by modifying this property. For versions of FIX Antenna prior to 2.29.0, the maximum value of user-defined tags was hardcoded as 4999.

    Info

    The maximum value of user-defined tags can differ from venue to venue. If a venue needs validation, the user should set MaxTagNumberForValidation equal to or higher than the highest tag value of custom tags in the venue's specification.

    For example, for ICE, this property should be set to 10,000 or higher because for ICE TC v. 4.11. the highest custom value is 9904.

    For CQG, this property should be 60,000 or higher.

    The value for this property must be a positive number.

    Default value: 4999

    This default value maintains backward compatible behavior for FIX Antenna prior to version 2.29.0.

    Expand
    titleTroubleshooting for MaxTagNumberForValidation

    When the maximum tag value in FIX Antenna is not set to a number equal to or higher than the highest tag in a venue's specification, it can lead to an error in message validation. In turn, FIX Antenna may reference an unexpected and incorrect cause of the validation error in the error message it returns.

    For example, the attached message ICE_SECDEF_9134.in will result in a validation error due to not defined tag 9134 being in position 254, however, the error explanation (below) shows a different position (99846).

    Code Block
    8=FIX.4.4|9=200|35=3|49=FIXEDGE|56=SENDER|34=3|52=20201106-11:48:35.966|45=3|371=326|372=d|373=2|58=Tag 326 is not defined for this message type. Parsing stopped at column: 99846 in message d with sequence number 3.|10=181|


    Session Message Validation parameters

    Info
    These parameters apply validation on a single session (Session level parameters). For applying parameters to multiple session as defaults see Configure Defaults for All Sessions

    Validation.IsEnabled

    This parameter is an option whereby validation in messages (application and session levels) can be controlled.

    If set to 'true' all application messages will be validated. If set to 'false' validation of the messages will be skipped.

    FIX Antenna behavior in the case when IsEnabled = false is different depending on the validation type.

    • "Required tag missing" validation:

    Parameter IsEnabled = false is used for outgoing messages (only application level) and incoming messages (both application and session levels).

    • "Tag specified without a value" validation:

    Parameter IsEnabled = false is used for outgoing messages (both application and session levels) and incoming messages (only application level).

    Please note: when setting IsEnabled = false don't forget to set ProhibitTagsWithoutValue = true.

    • "Unknown tags" validation:

    Parameter IsEnabled = true/false doesn't matter for messages. Only the IgnoreUnknownFields value matters for validation.

    Please note: when setting IsEnabled = false don't forget to set ProhibitUnknownTags = true/false and  IgnoreUnknownFields = false.

    This parameter is optional.

    Default value: true

    Validation.CheckRequiredGroupFields

    Optional. Controls the validation of required fields in the repeating group.

    Valid values: true, false

    If set to ‘true’, repeating groups will be checked for the presence of required fields. If set to ‘false’, the responsibility for repeating group validity rests with the counterparty. The recommended setting is 'true'.

    Note: Ignored if MessageMustBeValidated = false

    Default value: true

    Validation.AllowZeroNumInGroup

    The session parameter defines whether the Engine should accept repeating groups with a group size equal to '0' and no entries.

    Valid values: 'true' | 'false'

    If set to 'true', FIX Engine will accept messages as is. If set to 'false' and the VerifyTagsValues parameter is set to 'false' then the empty group will be removed from the message. Otherwise, the message will be rejected with the ERROR.

    Default value: false

    Validation.IgnoreUnknownFields

    If set to 'true', FIX Engine removes the undefined or user's fields from the message and this increases the performance.

    If set to 'false', FIX Engine allocates and keeps in memory the undefined or user's fields so performance is reduced but Engine doesn't truncate the data in the message. This parameter should be used along with Validation.ProhibitUnknownTags parameter. For more details see How to configure validation for non-user tags?

    Note: Ignored if MessageMustBeValidated = false

    Default value: false

    Validation.ProhibitDuplicatedTags

    When a parameter is set to 'false' the raw message may contain duplicated field definitions. Otherwise, the messages reject is rejected.

    Default value: true

    Validation.ProhibitTagsWithoutValue

    Valid values: true, false

    When set to 'false', a raw message may contain tags without values - they will be ignored. Otherwise, std::exception is fired.

    Validation.ProhibitUnknownTags

    If set to 'true', the FIX engine will reject messages with undefined tags in the FIX dictionary. For additional information see How to configure validation for non-user tags?

    Valid values: true, false

    Default value: false

    Validation.VerifyRepeatingGroupBounds

    Optional. If set to 'true', verifies a repeating group size for messages received by the session. Invalid messages will be rejected.

    It has a higher priority than VerifyRepeatingGroupBounds.

    Valid values: true, false

    Note: Ignored if MessageMustBeValidated = false

    Default value: true

    Info

    Validation.VerifyRepeatingGroupBounds = "false" has no effect since FIX Antenna 2.28.1 release.

    Prior to FIX Antenna version 2.28.1, Validation.VerifyRepeatingGroupBounds was called Validation.VerifyReperatingGroupBounds.

    Validation.VerifyRepeatingGroupTagsOrder

    Optional.

    Valid values: true, false

    If set to ‘true’, the Engine will check whether the first field of the repeating group is the same as specified in the dictionary. If it's not the same, then FIX Engine will reject the message.

    If set to 'false', the Engine will consider the first tag from the first repeating group entry as its first field so the following entries of this repeating group must have the same first field.

    Default value: false

    Validation.VerifyTagsValues

    This parameter controls tag values validation.

    Valid values: true, false

    If set to 'true', then all messages will be validated. If set to 'false' then the responsibility for message validity rests with the counterparty.

    Default value: false

    Logging parameters

    Log.File.Format

    Customformatoflogfilerecord. Can be defined separately for each log file e.g. Log.Version.File.Format = ...

    The format string can contain any symbols and keywords:

    • %% - put '%' symbol;
    • %level - put severity level name: 'ERROR', 'WARN' etc.;
    • %tablevel - put extra spaces for vertical alignment of records after %level;
    • %date{FIX} - date in 'YYYYMMDD-HH:MM:SS.sss' format;
    • %date{ISO8601} - date in 'YYYY-MM-DD HH:MM:SS,sss' format;
    • %date - date in 'DD MMM YYYY HH:MM:SS,sss' format;
    • %timezone - time zone abbreviation or name (setup TZ env variable to take abbreviation in windows) or 'UTC';
    • %logger - log category, component;
    • %thread - thread id;
    • %thread_name - prints the name of the thread
    • %message - logged message.

    Default value:

    Code Block
    languagebash
    Log.File.Format = [%level] %tablevel%date{FIX} [%thread] [%logger] - %message

    Log.File.CreateUniqueFileName

    If true new unique file name will be created. Log.File.Name value is a pattern. 

    If false Log.File.Name will be used as a file name.

    If Log.Device is not specified explicitly (in other words, Log.Device = "File" as default), Log.File.CreateUniqueFileName = 'false' as default.

    Log.Cycling

    Enables/disables log file cycling. 

    Valid values:

    • true - to enable cycling;
    • false - to disable cycling.

    If set to 'true', then repeating records in logs will be controlled and replaced with the single "cycling record" according to the specified cycling parameters. Seecyclling parameters described below for details.

    Log.Cycling.Ignore

    A number of repeating records are to be placed to log before cycling is started.

    Log.Cycling.BlockSize

    A number of repeating records are to be accumulated (hidden) before writing the "cycle record" to the log.

    Log.Cycling.Multiplier

    The multiplier for the BlockSize. If the BlockSize number of messages is accumulated and the same message still appears then the next BlockSize is calculated as the previous one multiplied by Multiplier.

    Log.Device

    Default target devices.

    The properties of the device are stored in the "Log.<name>" section. For instance the Log.Engine section contains all Engine properties.

    Valid values:

    • File - messages will be written to the file;
    • Console - messages will be written to the console;
    • EventLog (Windows specific) - messages will be written to the Windows Event Log;
    • WinDebug (Windows specific) - messages will be written to the OutputDebugString;
    • Syslog (Linux/Unix specific) - messages will be written to the system log.
    • Log4Cplus - messages will be written to Log4Cplus (since FIXEdge version 6.7)

    Default value: File

    The properties of the device are in the "Log.<name>" section. For instance Log.File contains all properties of the File device.
    • ) - messages will be written to the system log.
    • Log4Cplus - messages will be written to Log4Cplus (since FIXEdge version 6.7)

    Default value: File

    Info

    If the Log.Engine.Device property is set, then the Engine logs will be written to the _<timestamp>.log file.

    If the Log.Engine.Device property is not set, then the Engine will overwrite the following properties:

    Log.Engine.Device = File

    Log.Engine.File.RootDir = the value of the Log.File.RootDir property

    Log.Engine.File.Name = the value of the LogFileName property

    Log.Engine.File.CreateUniqueFileName = false

    And two log files will be created: _<timestamp>.log and engine_<timestamp>.log. 

    Multiple devices can be chosen - the names of devices should be separated by a space in this case.

    E.g.: by setting 

    For example, by setting the Log.Device

    =

    property to the "File Log4Cplus

     logging

    " value logging will be performed by both creating standard log files and forwarding them to Log4Cplus.

    Info

    Log4Cplus can be used to send log messages to external services such as Splunk. FIXEdge does not guarantee each log message delivery when:

    1. The log message receiver is not available (not listening on the given port).
    2. The Log message receiver throughput is less than the log flow produced by FIXEdge.

    In these cases, FIXEdge will drop the messages it was unable to send.

    Log.EventLog.EventSource

    A string that specifies the name of the source. The source name must be a subkey of a log file entry under the EventLog key in the registry.

    For example, "WinApp" is a valid source name if the registry has the following key: "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Event Log\Application\WinApp".

    Log.File.AutoFlush

    If set to 'true', then the buffer will be flushed after each logging call.

    If set to false then flush is not called.

    Setting to true decreases program performance; setting to false increases the risk of records loss in case of program failure.

    Log.File.Backup.Time

    Optional. The local time when logs should be backed up. When the specified backup time comes, the scheduler moves log files to the specified backup directory.

    Should be in format 'hh:mm' or 'hh:mm:ss'.

    Log.File.Locked

    If set to 'true' then lock file <Log.File.RootDir/Log.File.Name>.lock will be created. This will prevent other instances of the application use the same file.

    Valid values:

    • true - lock log file;
    • false - do not lock the log file.

    Log.File.Recreate

    Specifies if FIX Engine should create a new file with a unique name or append logs to the existing file.

    Valid values:

    • true - the new log file will be created on each start. The filename contains a timestamp of creation.
    • false - the engine appends the logs to the already created file.

    Log.File.RootDir

    The root directory for log files. It will be concatenated with each file name specified by 'Log.File.Name'. If Log.Device is not specified explicitly (in other words, Log.Device = "File" as default), Log.File.RootDir = LogDirectory as default.

    You can find more information about how to configure paths to log files here: How to configure paths to FIXEdge log files.

    Log.File.Rotate

    Enables/disables log file rotation.

    Valid values:

    • true - to enable rotation;
    • false - to disable rotation.

    If set to 'true', after the specified file size is reached, it is renamed and a new log file is created. See rotation parameters described below for details.

    Log.File.Rotate.SizeLimit

    Sizeoffileinbytes.Whenlogfilereaches this size it is renamed (follow standard rotation approach) and the new file is created.

    Example: Log.File.Rotate.SizeLimit = 104857600

    Log.File.Rotate.FileLimit

    A number of files are to be involved in the rotation. When the number is exceeded, the older file is removed.

    Example: Log.File.Rotate.FileLimit = 10

    Log.File.Rotate.Dir

    Rotation directory. Directory to store rotated files.
    Example: Log.File.Rotate.Dir = <%SERVICE_NAME%>/log

    Log.File.TimeZone

    Time zone of the log message timestamp.

    Valid values:

    • Local - display time as local;
    • UTC - UTC.

    Log.File.Name

    File name. If more than one category uses files with the same name, the same file will be used simultaneously.

    Log.DebugIsOn

    Enable Debug messages.

    Valid values:

    • true - to enable Debug messages;
    • false - to disable Debug messages.

    Log.ErrorIsOn

    Enable Error messages.

    Valid values:

    • true - to enable Error messages;
    • false - to disable Error messages.

    Log.FatalIsOn

    Enable Fatal Error messages.

    Valid values:

    • true - to enable Fatal Error messages;
    • false - to disable Fatal Error messages.

    Log.NoteIsOn

    Enable Note messages.

    Valid values:

    • true - to enable Note messages;
    • false - to disable Note messages.
    Info

    Starting from FIX Antenna 2.10.16.3, Note messages are indicated as INFO records in logs.

    Log.WarnIsOn

    Enable Warning messages.

    Valid values:

    • true - to enable Warning messages;
    • false - to disable Warning messages.

    Log.TraceIsOn

    Enable Trace messages.

    Valid values:

    • true - to enable Trace messages;
    • false - to disable Trace messages

    Log.OpenLDAP.TraceIsOn

    Enableswritingofdebuglog records fromOpenLDAPlibrary to the logs. The parameter has been added since FIXEdge 6.2.

    Valid values:

    • true - to enable OpenLDAP library debug-level logging;
    • false - to disable OpenLDAP library debug-level logging

    Affinity parameters

    WorkerCpuAffinity

    Defines an affinity mask for all worker pool threads.

    Affinity is specified as bitmask where the serial number of the bit is the serial number of the core if read from the right to the left. Mask should be presented in the decimal system.

    Info

    E.g. to specify the second, third, and fourth cores, the affinity in bytes will look like "1110". It is "14" in the decimal system. So, for proper use the property should be set in the following way:

    Code Block
    WorkerCpuAffinity = 14


    Default value: 0 - Engine will not change thread affinity mask.

    HelperCpuAffinity

    Defines an affinity mask for the dispatcher and other auxiliary threads.

    Affinity is specified as a bit mask where the serial number of the bit is the serial number of the core if read from the right to the left. Mask should be presented in the decimal system.

    Info

    E.g. to specify the third and fourth cores, the affinity in bytes will look like "1100". It is "12" in the decimal system. So, for proper use the property should be set in the following way:

    Code Block
    HelperCpuAffinity = 12


    Default value: 0 - Engine will not change thread affinity mask.

    CpuAffinity

    Specifies affinity mask for dedicated threads of the session. It makes sense only for aggressive modes.

    Affinity is specified as bitmask where the serial number of the bit is the serial number of the core if read from the right to the left. Mask should be presented in the decimal system.

    Info

    E.g. to specify the fourth, sixth, and eighth cores, the affinity in bytes will look like "10101000". It is "168" in the decimal system. So, for proper use the property should be set in the following way:

    Code Block
    CpuAffinity = 168


    Default value: 0 - The engine will not change the thread affinity mask.

    RecvCpuAffinity

    Specifies affinity mask for dedicated receiving thread of session. It makes sense only for aggressive receive mode.

    Affinity is specified as a bit mask where the serial number of the bit is the serial number of the core if read from the right to the left. Mask should be presented in the decimal system.

    Info

    E.g. to specify the third, sixth, seventh, and eight cores, the affinity in bytes will look like "11100100". It is "228" in the decimal system. So, for proper use the property should be set in the following way:

    Code Block
    RecvCpuAffinity = 228


    Default value: 0 - Engine will not change thread affinity mask.

    SendCpuAffinity

    Specifies affinity mask for dedicated sending thread of session. It makes sense only for aggressive send mode.

    Affinity is specified as a bit mask where the serial number of the bit is the serial number of the core if read from the right to the left. Mask should be presented in the decimal system.

    Info

    E.g. to specify the second, fifth, and seventh scores, the affinity in bytes will look like "01010010". It is "82" in the decimal system. So, for proper use the property should be set in the following way:

    Code Block
    SendCpuAffinity = 82


    Default value: 0 - The engine will not change the thread affinity mask.

    Monitoring parameters

    Monitoring parameters can be defined as defaults (Monitoring.AdminSessionDef.<Name_Of_Parameter>) or for a particular administrative session (Monitoring.AdminSession..<Name_Of_Administrative_Session>.<Name_Of_Parameter>). Below the definition of defaults is presented.

    Monitoring.AdminSessionDef.DisableTCPBuffer

    When true TCP buffer (Nagle algorithm) will be disabled for the session.

    Monitoring.AdminSessionDef.EncryptMethod

    The expected value of the encryption method.

    Monitoring.AdminSessionDef.ForceSeqNumResetMode

    Force SeqNum reset mode.

    An option to use the 141 tag in the Logon message to reset the sequence number.

    Monitoring.AdminSessionDef.IgnoreSeqNumTooLowAtLogon

    When true, the session ignores 'SeqNum too low' at the incoming Logon message and continues with the received SeqNum.

    Monitoring.AdminSessionDef.IntradayLogoutToleranceMode

    Intraday logout tolerance mode.

    An option to reset or not to reset sequence numbers after Logout.

    Monitoring.AdminSessionDef.MaxMessagesAmountInBunch

    Enqueued outgoing messages could be merged and sent as a single buffer.

    This parameter controls how many messages could be merged into the bunch. The 0 means an infinite amount.

    Monitoring.AdminSessionDef.Password

    The expected value of the Password (Tag 554) field in the incoming Logon message.

    If the real value is not equal to the expected one, the session is dropped without sending a message and the error condition is generated in the log output.

    Monitoring.AdminSessionDef.SenderLocationID

    SenderLocationID (tag 142) - assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader).

    Monitoring.AdminSessionDef.SocketOpPriority

    The priority of the socket SendReceive operations.

    Valid values:

    • EVEN (default) - share worker thread among all sessions in the Engine;
    • AGGRESSIVE_SEND - use a dedicated thread to send outgoing messages;
    • AGGRESSIVE_SEND_ASYNC - use a dedicated thread to send all outgoing messages to the queue without trying to send them to the socket first.
    • AGGRESSIVE_RECEIVE - use a dedicated thread to send outgoing messages;
    • AGGRESSIVE_SEND_AND_RECEIVE - use dedicated per-session threads to send and receive messages;
    • DIRECT_SEND - use the current thread for sending, if this would block, performs as "EVEN".

    Monitoring.AdminSessionDef.SourceIPaddress

    The expected IP address of a remote counterparty for administrative sessions.

    If the real value is not equal to the expected one, then the connections are disconnected without sending a message and the error condition is generated in the log output.

    Default value: 0.0.0.0 - listens to connections on all network interfaces for all IP addresses.

    Global parameter for all monitoring sessions.

    Monitoring.AdminSessionDef.ListenAddress

    The IP address of the network interface accepting incoming connections for administrative sessions.

    Default value: 0.0.0.0 - listens to connections at all network interfaces.

    Monitoring.AdminSessionDef.TargetLocationIDDisableTCPBuffer

    TargetLocationID_ (tag 143) - assigned value used to identify specific message destination's location (i.e. geographic location and/or desk, trader).

    Monitoring.AdminSessionDef.TargetSubID

    TargetSubID (tag 57) - assigned value used to identify a specific individual or unit intended to receive messages.

    Monitoring.AdminSessionDef.Username

    The expected value of the Username (Tag 553) field in the incoming Logon message.

    If the real value is not equal to the expected one then the session is disconnected without sending a message and the error condition is generated in the log output.

    Monitoring.AdminSessionNames

    The list of administrative FIX sessions separated by a comma.

    To set a property for a session in this list the user should add a property 'Monitoring.AdminSession.<session name>.<parameter name>', where <session name> is the name of the session from the list.

    Monitoring.ListenPort

    Info

    Monitoring.ListenPort parameter is deprecated starting FIXEdge 6.12.0 and FIX Antenna 2.29.0.

    The port on which FIX Engine accepts administrative FIX sessions. The name of this session starts with 'Monitoring'. 

    If the port is configured, it will be added to the set of Engine listen ports, and administrative sessions will be accepted on this port only.
    If the parameter does not exist or is empty, global Engine listen ports are used to accept administrative sessions.

    Info

    Does not support a secure connection. 

    To enable SSL on Monitoring.ListenPort, the port number must be also added to the ListenSSLPort parameter.

    Measuring.Enable

    Enables/disables Engine measuring.

    Valid values:

    • true - to enable Engine measuring;
    • false - to disable Engine measuring.

    Default value: false

    Monitoring.Enable

    Enables/disables Engine monitoring.


    Scheduler parameters

    TimezoneDB

    Optional. Timeline CSV file where all valid time zones are defined. The scheduler works in UTC only.

    Generic name of timeline file: date_time_zonespec.csv

    Info

    Path to the timeline file in the FIX Antenna package: <Package>/data/date_time_zonespec.csv 

    FIXEdge.Scheduler.Threads

    Info

    This parameter is available since FIXEdge 6.13.0 release.

    Optional. The number of threads for task execution.

    Info

    Since FIXEdge 6.13.0 tasks of the particular schedule are executed one by one, but tasks of different schedules are executed in parallel to each other. The number of tasks that can be executed in parallel is defined by the FIXEdge.Scheduler.Threads property.

    Default value: 2

    Changing the value of this parameter may impact the performance.

    Schedule.<schedule_name>.TradePeriodBegin

    Mandatory. Timetable for the beginning of the trading day.

    Defined in the cron format. <schedule_name> is the schedule name.

    Schedule.<schedule_name>.TradePeriodEnd

    Mandatory. Timetable for the ending of the trading day.

    Defined in the cron format. <schedule_name> is the schedule name.

    Schedule.<schedule_name>.Timezone

    Optional. Selects a time zone defined in the TimezoneDB property pointing file to use with the schedule. 

    Default value: UTC

    Info

    All possible values can be found in the file that the TimezoneDB property points to. 

    See <Package>/data/date_time_zonespec.csv in the FIX Antenna package.

    <schedule_name> is the schedule name.

    Schedule.<schedule_name>.LateExecution

    Optional. Selects a time zone defined in the TimezoneDB property pointing file to use with the schedule.

    Set to 'true' to forcefully trigger the TradePeriodBegin event or to 'false' to avoid forceful triggering of the TradePeriodBegin event.

    When set to true, forcefully triggers the trade period begin event when the application's start occurred inside the trading period (between TradePeriodBegin and TradePeriodEnd).

    Default value: false

    Schedule.<schedule_name>.DayOffs

    Optional. Defines a cron expression when events are not triggered (for example, holidays when the venue does not work). Defined in the cron format.

    Info

    dayoffs - is a cron expression like others. If the following event matches the dayoffs expression, it is considered to be a day off, and the schedule is not notified about the event. When this occurs, the Scheduler asks the timeline generator for the next event.

    <schedule_name> is the schedule name.

    SSL parameters

    FIX Antenna 2.26.0 release introduced updated SSL support with an extended variety of formats accepted and password-protected certificates/keys support.

    FIX Antenna supports certificates in PEM, PFX, and DER formats along with private keys in PEM and DER formats.

    Password-protected certificates/keys can be used as well. The password is specified within plain text in the engine.properties file.

    ListenSSLPort

    Optional. Engine's port or several ports, delimited by a comma, on which acceptors listen to FIX sessions' secure incoming connections.

    One incoming port can be used for several sessions if these sessions have similar SSL settings.

    Must not contain the value of global ListenPort.

    Info
    This parameter is similar to ListenPort. It is the list of ports, where an SSL connection will be accepted.

    SSLCACertificate

    Optional if no peer certificate validation is required. The path to the file containing CA certificates - all in one file, PEM format only. 

    CA certificates are used to build an accepted certificates list sent to peers as well.

    SSLCertificate

    Mandatory. Engine's SSL certificate file path.

    SSLPrivateKey

    Mandatory if ListenSSLPort is not empty. The path to the file containing the certificate private key. The certificate and private key can be the same file.

    Info

    FIX Antenna 2.26.0 supports certificates in PEM, PFX, and DER formats along with private keys in PEM and DER formats. Earlier versions support *.pem certificates only.

    SSLCheckPrivateKey

    Optional. Engine's SSL option is whatever to check if the private key matches the certificate.

    Default value: false

    Info

    Deprecated since FIX Antenna 2.26.0 release. The correspondence between the key and certificate will be checked automatically. FIX Antenna does not establish a session if the key doesn't correspond to the certificate.

    SSLProtocols

    Mandatory if ListenSSLPort is specified and optional otherwise. Engine's SSL protocols to use.

    Used for all acceptor sessions and as default values for Initiator sessions.

    It is a comma-separated list of protocols to use.

    Valid values: SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2, TLSv1_3(supported since versions FIXEdge 6.12.0 and FIX Antenna 2.29.0).

    Info

    Since some security issues with SSL v3 and RC4 encryption algorithms have been discovered recently and TLS 1.0, and TLS 1.1 also contain known vulnerabilities, we strongly recommend using the TLSv1_2 protocol.

    SSLRequireClientCertificate

    Optional. Whatever client's certificate is mandatory.

    Decline clients without a valid certificate if true. The default value is false.

    Info

    Deprecated since FIX Antenna 2.26.0 release. Use the SSLValidatePeerCertificate parameter instead.

    SSLCertificatePassword 

    Info

    This parameter is available since FIX Antenna 2.26.0 release.

    Optional. Applicable only if the certificate is password-protected. A certificate's password. This password is used for the private key stored within the certificate file as well

    SSLPrivateKeyPassword 

    Info

    This parameter is available since FIX Antenna 2.26.0 release.

    Optional if the private key is not password-protected. A private key's password.

    SSLValidatePeerCertificate

    Info

    This parameter is available since FIX Antenna 2.26.0 release. Use SSLValidatePeerCertificate parameter instead of deprecated SSLRequireClientCertificate.

    Optional. If set to 'true' then client connections without a certificate will be rejected. Setting this property to 'true' requires an SSL engine to validate the counterparty's certificate against the CA certificate provided.

    Default value: false.

    SSLCiphersList 

    OptionalThe default OpenSSL built-in configuration is used in case of parameter absence.

    The list is passed as is to OpenSSL during engine initialization in case of acceptor sessions (acceptor sessions are sharing the same configuration) and during session initialization in case of initiator sessions. See a list of the supported ciphers and list format is at the official OpenSSL site: https://www.openssl.org/docs/man1.0.2/apps/ciphers.html

    Info

    This parameter is available since FIX Antenna 2.25.1 release.

    TCP Protection parameters

    Info

    This  set of parameters is available since FIX Antenna 2.24.0 release

    ProtectionTCP.Enabled

    The property enables TCP protection.

    Valid values: true/false.

    Default value: false.

    ProtectionTCP.WaitLogon

    The property to specify connection timeout (in milliseconds) of waiting for logon.

    Disable when equal to 0.

    Default value: 0

    The property will be enabled only if ProtectionTCP.Enabled = true

    ProtectionTCP.SizeWaitHostMax

    The property specifies a maximum of connections waiting for logon from one host. When the number of connections from the same host exceeds the specified value of the property, new connections will be rejected.

    Disable when equal to 0.

    Default value: 0

    The property will be enabled only if ProtectionTCP.Enabled = true

    ProtectionTCP.SizeBufferMax

    Specifies the maximum size (in bytes) of the buffer to be able to avoid the situation when users end up with high-loaded garbage. 

    When the limit is exceeded, the connection will be closed and the corresponding reason will be written in the log.

    The minimum size of the property which can be specified is 262144. If a lower value is specified in the property, it will be replaced with 262144 at the start of the FIXEdge.

    If 0 is specified, there is no limit for the size of the buffer.

    Default value: 0

    The property will be enabled only if ProtectionTCP.Enabled = true

    Other parameters

    AnchorFile

    Myricom.Dbl.TcpListenAddresses

    Optional. DBL TCP listen address and port.

    Format: <XXX.XXX.XXX.XXX>:<port>.

    Myricom.Dbl.UseSocketAdaptor

    Optional. This property tells how will be initialized Myricom DBL TCP API.

    If set to 'true', it will use SocketAdaptor to emulate DBL API via generic sockets. The default value is false.

    EnableDnsEntrySpoofingDetection

    When it's set to true there is an enabled backward resolve-based DNS entry spoofing detection mechanism in DNS-related functions.

    Default value: enable 


    Info

    If the parameter is enabled, a user should use a Fully Qualified Domain Name (FQDN) or IP address as configuration/function parameters (e.g. 'workstation1.epam.com' instead of 'workstation1'). Otherwise, errors about DNS spoofing will be reported.

    KeepMillisecondsInUTCTimeFields

    Info

    It is a global option for FixEngine. It works only when a value is passed as Engine::UTCTimestamp or Engine::UTCTimeOnly.

    Defines how to serialize UTCTimestamp or UTCTimeOnly field values:

    0 - default mode -  if the value of milliseconds is not equal to 0 then it will be serialized.
    1 - always serialize milliseconds
    2 - always truncate milliseconds

    Default value: 0

    ...