Configuration

Common parameters

During the initialization, by default the FIX Antenna reads the configuration parameters from the engine.properties file. 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:

 FixEngine::init("FE.properties"); 

Here is an alphabetically sorted list of all parameters with references to their documentation:

# When true, raw message may contains tags without values - they will be ignored.
# Otherwise exception was fired.
AllowEmptyFieldValue = false

# When true, raw message may contains leading group tag with 0 value - it will be ignored.
# Otherwise exception was fired.
AllowZeroNumInGroup = false

# Relative path to the backup folder. This folder will be used for message storage files
# of the backup connections.
BackupDirectory = logs/backup

# 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.
EngineRoot = .

# Engine's listen port. 
# Must be > 0.
ListenPort = 9105
   
# Engine's local IP address to bind to. It can be used on a multi-homed host
# for a FIX Engine that will only accept connect 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's log file name.
#
# If this parameter is commented or empty, the 'engine.log' will be used. 

# LogFileName = FIXAntenna_C++.log
   

# Engine's 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 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 or an absolute path. 
# For example if LogDirectory is set to \"logs\" then 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 extension "in".
LogIncomingMessages = true


# This parameter sets the time period after which a session is terminated ungracefully
# 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 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 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 existance of required tags in application level messages. 
# The possible values are "true" and "false". If set to "true" then all application 
# level messages are validated. If set to "false" then the responsibility for message validity 
# rests 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 a message rejecting is 
# starting while session isn't exists.
# Parameter isn't required. 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 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 then Engine sends 
# a TestRequest message. If the required Response Heartbeat message is not received during 
# Heartbeat interval plus Delta then 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" then Engine will redirect FIX messages automatically 
# to other FIX sessions it maintains. 
# If this parameter is set to "False" Engine directs all messages received 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 (an acceptor). If set to "true" Engine establishes a session, 
# all application level messages are rejected (Application Level Reject - type 3). When 
# an application is registered, the behaviour is standard. If set to false then Logon messages 
# are ignored.
CreateUnregisteredAcceptorSession = true 
   

# 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 ony 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 then 
# 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", then 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 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 integer and 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 the event of a Resend Request. If set to "-1" then the number of the messages i# 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 version of 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 an error 
# occurs. If set to false then the application level message will be sent to the counterparty. 
# The recommended value is "true".
CheckVersionOfOutgoingMessages = true


# If this parameter is true than file streams are flushed after each I/O operation. 
ExtraSafeMode = true


# This parameter allow to automaticaly resolve sequence gap problem. 
# When parameter is true and outgoing SeqNum is 0, session use 141(ResetSeqNumFlag) 
# tag in sending/confirming Logon message to reset seqNum at 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's 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" then repeating 
# groups will be checked for presence of required fields. 
#
# If set to "false" then the responsibility for repeating groups validity 
# rests with the counterparty. 
#
# This parameter is optional, the recommended value is "true". 
# The default value is "true". 
Validation.CheckRequiredGroupFields = true


# Encryption config file.
# This parameter is optional.
EncryptionConfigFile = encryption.properties


# This paramter allow to resolve seqNum too low problem at logon.
# When it true - session continue with received seqNum.
UnregisteredAcceptor.IgnoreSeqNumTooLowAtLogon = false


# When true, unregistered acceptors will reject messages in case they coudn't be sent 
# during interval
UnregisteredAcceptor.RejectMessageWhileNoConnection = false


# FA able to join packages that wait for sending into the socket, this paramters 
# controls how many messages could be joined. 0 means infinite. Value should be 
# less than 1000000.
UnregisteredAcceptor.maxMessagesAmountInBunch = 0


# When true, the TCP buffer (Nagle algorithm) will be disabled for the unregistered 
# acceptors. Otherwise, TCP may join and enqueu small packages until timeout 
# ends.
UnregisteredAcceptor.tcpBufferDisabled = false


# Default storage type of the created unregistered sessions. By default persistent storage 
# type used. Use "transient" value to use transient storage for the sessions.
UnregisteredSessionStorageType = persistent


# This parameter contains name of the XML file with extensions of the FIX protocols.
#
# 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 properties of administrative session. AdminSessionDef.* parameters are default session properties. AdminSession.*.* parameters are properties of specified session. FixEngine uses administrative session properties while creating session.

In the configuration file the following monitoring parameters can be assigned:

# This parameter enables administrative and monitoring functionality of FIX Engine.
# Parameter isn't required. If it is absent administrative and monitoring functionality is disabled.

Monitoring.enable = true

# Default TargetSubID value of administrative session
# Parameter isn't required. Empty value is used if parameter is absent.

AdminSessionDef.TargetSubID = 

# Default SenderLocationID value of administrative session
# Parameter isn't required. Empty value is used if parameter is absent.

AdminSessionDef.SenderLocationID = 

# Default TargetLocationID value of administrative session
# Parameter isn't required. Empty value is used if parameter is absent.

AdminSessionDef.TargetLocationID = 

# Default expected Username value of administrative session
# If field value from logon message (MsgType=A) is different, connection is rejected.
# Parameter isn't required. Empty value is used if parameter is absent. 

AdminSessionDef.Username = 

# Default expected Password value of administrative session
# If field value from logon message (MsgType=A) is different, connection is rejected.
# Parameter isn't required. Empty value is used if parameter is absent.

AdminSessionDef.Password = 

# Default expected IP address of administrative session connection
# If real address is different, connection is rejected.
# Parameter isn't required. Empty value is used if parameter is absent. Empty value means *.*.*.*

AdminSessionDef.SourceIPaddress = 

# Default expected EncryptMethod value of administrative session
# Allowed values: NONE, PKCS, DES, PKCS_DES, PGP_DES, PGP_DES_MD5, PEM_DES_MD5
# If field value from logon message (MsgType=A) is different, connection is rejected.
# Parameter isn't required. NONE value is used if parameter is absent.

AdminSessionDef.EncryptMethod = NONE

# Default intraday logout tolerance mode of administrative session
# Allowed values: ON, OFF
# Parameter isn't required. OFF value is used if parameter is absent.

AdminSessionDef.IntradayLogoutToleranceMode = OFF

# Default force SeqNum reset mode of administrative session
# Allowed values: ON, OFF
# Parameter isn't required. OFF value is used if parameter is absent.

AdminSessionDef.ForceSeqNumResetMode = OFF

# Default ignoring 'SeqNum too low' at incoming Logon message of administrative session
# Allowed values: TRUE, FALSE
# Parameter isn't required. FALSE value is used if parameter is absent.

AdminSessionDef.IgnoreSeqNumTooLowAtLogon = FALSE

# Default disabling TCP buffer of administrative session
# Allowed values: TRUE, FALSE
# Parameter isn't required. FALSE value is used if parameter is absent.

AdminSessionDef.DisableTCPBuffer = FALSE

# Default messages amount to merge into the bunch
# Parameter isn't required. 0 value is used if 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
# Parameter isn't required. EVEN value is used if parameter is absent.

AdminSessionDef.SocketOpPriority = EVEN

# List of administrative sessions separated by ','. 
# Every session name takes central part of specified session parameter.
# Parameter is required

AdminSessionNames = AdminClient,MonitoringTool

# TargetCompId value of administrative session
# Parameter is required

AdminSession.AdminClient.TargetCompId = AdminClient

# FIX protocol version of administrative session
# If protocol version from logon message (MsgType=A) is different, connection is rejected.
# Allowed values: FIX40, FIX41, FIX42, FIX43, FIX44, FIX50, FIXT11
# Parameter is required

AdminSession.AdminClient.Version = FIX42

# TargetSubID value of administrative session
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.TargetSubID = 

# SenderLocationID value of administrative session
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.SenderLocationID = 

# TargetLocationID value of administrative session
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.TargetLocationID = 

# Expected Username value of administrative session
# If field value from logon message (MsgType=A) is different, connection is rejected.
# Parameter isn't required. Default value is used if parameter is absent. 

AdminSession.AdminClient.Username = sds_fix_os

# Expected Password value of administrative session
# If field value from logon message (MsgType=A) is different, connection is rejected.
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.Password = Starts123

# Expected IP address of administrative session connection
# If real address is different, connection is rejected.
# Parameter isn't required. Default value is used if 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 field value from logon message (MsgType=A) is different, connection is rejected.
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.EncryptMethod = DES

# Intraday logout tolerance mode of administrative session
# Allowed values: ON, OFF
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.IntradayLogoutToleranceMode = ON

# Force SeqNum reset mode of administrative session
# Allowed values: ON, OFF
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.ForceSeqNumResetMode = ON

# Ignoring 'SeqNum too low' at incoming Logon message of administrative session
# Allowed values: TRUE, FALSE
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.IgnoreSeqNumTooLowAtLogon = FALSE

# Disabling TCP buffer of administrative session
# Allowed values: TRUE, FALSE
# Parameter isn't required. Default value is used if parameter is absent.

AdminSession.AdminClient.DisableTCPBuffer = FALSE

# Messages amount to merge into the bunch
# Parameter isn't required. Default value is used if 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 parameter is absent.

AdminSession.AdminClient.SocketOpPriority = AGGRESIVE_SEND

Generated on Fri Apr 17 12:26:08 2009 for B2BITS FIX Antenna C++ by  doxygen 1.5.6