FIX Antenna ANSI C  2.18.0
 All Data Structures Variables Pages
Configuration

Common parameters

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.

For example:

B2BITS_FixEngine_Init("FE.properties",-1,"","");

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

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.

- Monitoring.enable
- AdminSessionDef.TargetSubID
- AdminSessionDef.SenderLocationID
- AdminSessionDef.TargetLocationID
- AdminSessionDef.Username
- AdminSessionDef.Password
- AdminSessionDef.SourceIPaddress
- AdminSessionDef.EncryptMethod
- AdminSessionDef.IntradayLogoutToleranceMode
- AdminSessionDef.ForceSeqNumResetMode
- AdminSessionDef.IgnoreSeqNumTooLowAtLogon
- AdminSessionDef.DisableTCPBuffer
- AdminSessionDef.MaxMessagesAmountInBunch
- AdminSessionDef.SocketOpPriority
- AdminSessionNames
- AdminSession.(session name).TargetCompId
- AdminSession.(session name).Version
- AdminSession.(session name).TargetSubID
- AdminSession.(session name).SenderLocationID
- AdminSession.(session name).TargetLocationID
- AdminSession.(session name).Username
- AdminSession.(session name).Password
- AdminSession.(session name).SourceIPaddress
- AdminSession.(session name).EncryptMethod
- AdminSession.(session name).IntradayLogoutToleranceMode
- AdminSession.(session name).ForceSeqNumResetMode
- AdminSession.(session name).IgnoreSeqNumTooLowAtLogon
- AdminSession.(session name).DisableTCPBuffer
- AdminSession.(session name).MaxMessagesAmountInBunch
- AdminSession.(session name).SocketOpPriority

The following monitoring parameters can be assigned in the configuration file:

# 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