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 B2BITS_FixEngine_Init(..., const char* aPropertiesFileName,... ) call parameter.
Below you will find the alphabetically sorted list of all parameters with references to their documentation:
# When true, raw message may contain tags without values - they will be ignored.
# Otherwise exception is fired.
AllowEmptyFieldValue = false
# When true, raw message may contain a leading group tag with 0 value - it will be ignored.
# Otherwise exception is fired.
AllowZeroNumInGroup = false
# Relative path to the backup folder. This folder will be used for message storage files
# of backup connections.
BackupDirectory = logs/backup
# The top of the directory tree, under which the engine configuration
# and log files are stored.
#
# Do NOT add a slash at the end of the directory path.
EngineRoot = .
# Engine's listen port.
# Must be > 0.
ListenPort = 9105
# Engine local IP address to bind to. It can be used on a multi-homed host
# for a FIX Engine that will only accept connection requests to one of its addresses.
# If this parameter is commented or empty, the engine will accept connections to any/all
# local addresses.
# ListenAddress = localhost
# Engine log file name.
#
# If this parameter is commented or empty, the 'engine.log' will be used.
# LogFileName = FIXAntenna_C++.log
# Engine local IP address to send from. It can be used on a multi-homed host
# for a FIX Engine that will only send IP datagrams from one of its addresses.
# If this parameter is commented or empty, the engine will send IP datagrams from any/all
# local addresses.
# ConnectAddress = localhost
# Number of threads that serve FIX sessions. This is independent of the number of sessions.
# Changing this value will impact upon the performance of FIX Engine.
# The recommended value is 10. The value must be an integer greater than zero.
NumberOfWorkers = 10
# This property is the path to 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 or an absolute path.
# For example if LogDirectory is set to \"logs\" the real path is $(EngineRoot)/logs.
# The specified directory must exist.
LogDirectory = logs
# 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 "in" extension.
LogIncomingMessages = true
# This parameter sets the time period, after which a session is terminated ungracefully
# if a response is not received to the 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", the time period is unlimited.
# The value must be a non negative integer.
LogonTimeFrame = 30
# This parameter sets the time period, after which a session is terminated automatically
# if a response is not received to a "Logout message" (message type 5).
# 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.
# The value must be an integer greater than 0.
LogoutTimeFrame = 30
# An option not to reset sequence numbers after Logout.
# Logout sender should initiate session recovery by sending a Logon message
# with SeqNum = <last outgoing SeqNum> + 1;
# expecting reply Logon with SeqNum = <last incoming SeqNum> + 1.
# If a gap is detected, standard message recovery or gap filling process
# takes place.
IntradayLogoutTolerance = false
# This parameter controls the presence of required tags in application level messages.
# The possible values are "true" and "false". If set to "true" all application
# level messages are validated. If set to "false" the responsibility for message validity
# remains with the counterparty. Note, that session level messages are validated in
# all cases. The recommended setting is "true".
MessageMustBeValidated = true
# This parameter sets the time period, after which message rejecting is
# started if the session does not exist.
# The parameter is not required. The value is specified in milliseconds (seconds*10-3),
# must be integer and > 0.
MessageTimeToLive = 500
# This parameter specifies the delta (increment) to the Heartbeat interval between
# a TestRequest message sent by FIX Engine and a Response Heartbeat 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
# a TestRequest message. If the required Response Heartbeat message is not received during
# Heartbeat interval plus Delta the session moves to the state "Telecommunication link
# failed". This parameter is specified in (Heartbeat Interval/100). The recommended value is
# twenty percent.
ReasonableTransmissionTime = 20
# 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 will redirect FIX messages automatically
# to other FIX sessions it maintains.
# If this parameter is set to "False" the Engine directs all received messages to the client
# application.
ThirdPartyRoutingIsEnabled = true
# This parameter provides an option whereby FIX Engine will accept a FIX session for which it
# has no registered application (acceptor). If set to "true" the Engine establishes a session,
# all application level messages are rejected (Application Level Reject - type 3). When
# the application is registered, the behaviour is standard. If set to "false" Logon messages
# are ignored.
CreateUnregisteredAcceptorSession = true
# This parameter specifies the time interval between attempts to deliver an application level
# message to the registered client application in case the application does not confirm the
# 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.DeliveryTriesInterval = 500
# 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
# the session will be closed with the logout reason "Application not available".
# The value must be integer and not negative.
# This parameter is optional.
DelayedProcessing.MaxDeliveryTries = 10
# 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", the number of attempts is unlimited.
# This value is integer.
Reconnect.MaxTries = 10
# This parameter specifies the time interval between reconnection attempts in order to restore
# a telecommunications 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.Interval = 1000
# The license file path.
LicenseFile = engine.license
# This parameter defines the upper limit to the number of outgoing messages that are resent
# in case of a Resend Request. If set to "-1" then the number of messages is unlimited. The recommended value is 1000 if no data on mean activity is known.
# The value must be integer and not less than -1.
OutgoingMessagesStorageSize = 1000
# This parameter is an option whereby the FIX protocol version used for outgoing messages
# is validated against that of the established session. If set to "true" the application
# must use the same version of the protocol as the established session, otherwise an error
# occurs. If set to "false" the application level message will be sent to the counterparty.
# The recommended value is "true".
CheckVersionOfOutgoingMessages = true
# If this parameter is true file streams are flushed after each I/O operation.
ExtraSafeMode = true
# This parameter allows resolving sequence gap problem automatically.
# When the parameter is "true" and outgoing SeqNum is 0, the session uses 141(ResetSeqNumFlag)
# tag in sending/confirming a Logon message to reset seqNum as the initiator or acceptor.
ForceSeqNumReset = false
# An option to write timestamps in the log files.
#
# This parameter is optional, the default value is "true".
#
TimestampsInLogs = true
# An option to write timestamps in the log files.
#
# This parameter is optional, the default value is "true".
#
ResendMessagesBlockSize = 1000
# An option to send a Logon message with the ResetSeqNumFlag set
# after each 24 hour period of session activity to establish a new set
# of sequence numbers (starting with 1).
#
# This parameter is optional, the default value is "false".
#
# NOTE: This option does not affect sessions which use version 4.0 of the FIX protocol.
ResetSeqNumAfter24hours = false
# This parameter controls the validation of required fields in repeating groups.
# The possible values are "true" and "false". If set to "true" the repeating
# groups will be checked for presence of required fields.
#
# If set to "false" the responsibility for repeating groups validity
# remains with the counterparty.
#
# This parameter is optional, the recommended value is "true".
# The default value is "true".
Validation.CheckRequiredGroupFields = true
# Encryption of the config file.
# This parameter is optional.
EncryptionConfigFile = encryption.properties
# This parameter allows resolving seqNum too low problem at logon.
# When "true" - the session continues with received seqNum.
UnregisteredAcceptor.IgnoreSeqNumTooLowAtLogon = false
# When true, unregistered acceptors will reject messages in case they coud not be sent
# during the interval
UnregisteredAcceptor.RejectMessageWhileNoConnection = false
# FA is able to join packages that wait for sending into the socket, this parameter
# controls how many messages can be joined. 0 means infinite. The value should be
# lesser than 1000000.
UnregisteredAcceptor.maxMessagesAmountInBunch = 0
# When true, the TCP buffer (Nagle algorithm) will be disabled for the unregistered
# acceptors. Otherwise, the TCP may join and enqueue small packages until timeout
# ends.
UnregisteredAcceptor.tcpBufferDisabled = false
# The default storage type of created unregistered sessions. The persistent storage
# type is used by default. Use "transient" value to use transient storage for the sessions.
UnregisteredSessionStorageType = persistent
# This parameter contains the name of the XML file with the FIX protocols extensions.
#
# This parameter is optional.
#
Validation.AdditionalFieldsFileName = additional.xml
# This parameter is obsolete - the Validation.AdditionalFieldsFileName should be used instead.
Validation.AdditionalFields = FIX42:Ug:6146(6311,6308);FIX42:8:639?,204?;FIX44:r:534(528?,5001?);FIX42:i:232(233,234?),232=>539(524,525?);FIX44:i:296=>295(423?,218?,220?,221?,222?,662?,663?,699?,761?,63?,30028?),296=>295=>232(233,234?),296=>295=>539(524,525?,538?,804?)
Monitoring parameters are used to define the properties of administrative session. AdminSessionDef.* parameters are default session properties. AdminSession.*.* parameters are the properties of a specified session. Fix Engine uses the administrative session properties while creating a session.
# This parameter enables the administrative and monitoring functionality of FIX Engine.
# Parameter is not required. If it is absent the administrative and monitoring functionality is disabled.
Monitoring.enable = true
# The default TargetSubID value of administrative session
# The parameter is not required. Empty value is used if the parameter is absent.
AdminSessionDef.TargetSubID =
# The default SenderLocationID value of administrative session
# The parameter is not required. Empty value is used if the parameter is absent.
AdminSessionDef.SenderLocationID =
# The default TargetLocationID value of administrative session
# The parameter is not required. Empty value is used if the parameter is absent.
AdminSessionDef.TargetLocationID =
# The default expected Username value of administrative session
# If the field value from logon message (MsgType=A) is different, connection is rejected.
# The parameter is not required. Empty value is used if the parameter is absent.
AdminSessionDef.Username =
# The default expected Password value of administrative session
# If the field value from logon message (MsgType=A) is different, connection is rejected.
# The parameter is not required. Empty value is used if the parameter is absent.
AdminSessionDef.Password =
# The default expected IP address of administrative session connection
# If the real address is different, connection is rejected.
# The parameter is not required. Empty value is used if the parameter is absent. Empty value means *.*.*.*
AdminSessionDef.SourceIPaddress =
# The default expected EncryptMethod value of administrative session
# Allowed values: NONE, PKCS, DES, PKCS_DES, PGP_DES, PGP_DES_MD5, PEM_DES_MD5
# If the field value from logon message (MsgType=A) is different, connection is rejected.
# The parameter isn't required. NONE value is used if the parameter is absent.
AdminSessionDef.EncryptMethod = NONE
# The default intraday logout tolerance mode of administrative session
# Allowed values: ON, OFF
# The parameter is not required. OFF value is used if the parameter is absent.
AdminSessionDef.IntradayLogoutToleranceMode = OFF
# The default force SeqNum reset mode of administrative session
# Allowed values: ON, OFF
# The parameter is not required. OFF value is used if the parameter is absent.
AdminSessionDef.ForceSeqNumResetMode = OFF
# Default ignoring of 'SeqNum too low' at incoming Logon message of administrative session
# Allowed values: TRUE, FALSE
# The parameter is not required. FALSE value is used if the parameter is absent.
AdminSessionDef.IgnoreSeqNumTooLowAtLogon = FALSE
# Default disabling of the TCP buffer of administrative session
# Allowed values: TRUE, FALSE
# The parameter is not required. FALSE value is used if parameter is absent.
AdminSessionDef.DisableTCPBuffer = FALSE
# The default messages amount to merge into the bunch
# The parameter is not required. 0 value is used if the parameter is absent. The 0 means infinite amount.
AdminSessionDef.MaxMessagesAmountInBunch = 0
# Default priority of the socket SendReceive operations of administrative session
# Allowed values: EVEN, AGGRESIVE_SEND
# The parameter is not required. EVEN value is used if the parameter is absent.
AdminSessionDef.SocketOpPriority = EVEN
# The list of administrative sessions separated by ','.
# Every session name takes the central part of a specified session parameter.
# The parameter is required
AdminSessionNames = AdminClient,MonitoringTool
# TargetCompId value of administrative session
# The parameter is required
AdminSession.AdminClient.TargetCompId = AdminClient
# The FIX protocol version of administrative session
# If the protocol version from logon message (MsgType=A) is different, connection is rejected.
# Allowed values: FIX40, FIX41, FIX42, FIX43, FIX44, FIX50, FIXT11
# The parameter is required
AdminSession.AdminClient.Version = FIX42
# TargetSubID value of administrative session
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.TargetSubID =
# SenderLocationID value of administrative session
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.SenderLocationID =
# TargetLocationID value of administrative session
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.TargetLocationID =
# The expected Username value of administrative session
# If the field value from logon message (MsgType=A) is different, connection is rejected.
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.Username = sds_fix_os
# The Expected Password value of administrative session
# If the field value from logon message (MsgType=A) is different, connection is rejected.
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.Password = Starts123
# The Expected IP address of administrative session connection
# If the real address is different, connection is rejected.
# The parameter is not required. Default value is used if the parameter is absent. Empty value means *.*.*.*
AdminSession.AdminClient.SourceIPaddress = 194.10.0.54
# Expected EncryptMethod value of administrative session
# Allowed values: NONE, PKCS, DES, PKCS_DES, PGP_DES, PGP_DES_MD5, PEM_DES_MD5
# If the field value from logon message (MsgType=A) is different, connection is rejected.
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.EncryptMethod = DES
# Intraday logout tolerance mode of administrative session
# Allowed values: ON, OFF
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.IntradayLogoutToleranceMode = ON
# Force SeqNum reset mode of administrative session
# Allowed values: ON, OFF
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.ForceSeqNumResetMode = ON
# Ignoring of 'SeqNum too low' at incoming Logon message of administrative session
# Allowed values: TRUE, FALSE
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.IgnoreSeqNumTooLowAtLogon = FALSE
# Disabling of the TCP buffer of administrative session
# Allowed values: TRUE, FALSE
# The parameter is not required. Default value is used if the parameter is absent.
AdminSession.AdminClient.DisableTCPBuffer = FALSE
# The messages amount to merge into the bunch
# Parameter isn't required. Default value is used if the parameter is absent. The 0 means infinite amount.
AdminSession.AdminClient.MaxMessagesAmountInBunch = 1000
# Priority of the socket SendReceive operations of administrative session
# Allowed values: EVEN, AGGRESIVE_SEND
# Parameter isn't required. Default value is used if the parameter is absent.
AdminSession.AdminClient.SocketOpPriority = AGGRESIVE_SEND