# The FIX Engine configuration file.
#
# $Revision: 1.5.2.11 $

# For UNIX platforms, the filename-separator character is "/".
# For Win32 platforms, the filename-separator character is "\\" or "/".

# 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 = I:/B2Bits/FIXEdge

# Engine's listen port. Must be > 0.
ListenPort = 9106

# 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 = 127.0.0.1
ListenAddress = 10.1.1.1

# 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 = 10.1.1.1
#ConnectAddress = localhost

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

# 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 integer and 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. 
# For example if LogDirectory is set to \"logs\" then the real path is $(EngineRoot)/logs.
# The specified directory must exist.
LogDirectory = FixEdge1/log

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

# 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 = false

# 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 integer and not negative.
LogonTimeFrame = 10

# 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 integer and greater than 0.
LogoutTimeFrame = 10

# 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. Please note that session level messages are validated in 
# all cases. The recommended setting is "true".
MessageMustBeValidated = false

# 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 = false

# 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 behaviour is as standard. If set to false then Logon messages 
# are ignored.
UnregisteredAcceptor.CreateSession = false

# 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 integer and 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 then 
# the session will be closed with the logout reason "Application not available". The recommended value is 10.
# The value must be integer and not negative.
# This parameter is optional.
DelayedProcessing.MaxDeliveryTries = 2

# 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 = 5

# 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 = 5000

# 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

# 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 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

# Resend Request resend messages by blocks. This parameter defines how many messages 
# procceed in block. By default parameter is 0 - all messages will be resend in one block.
# The value must be integer and not less than 0.
ResendMessagesBlockSize = 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 = false

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


# 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

# An option to write timestamps in the log files. 
#
# This parameter is optional, the default value is true.
#
TimestampsInLogs = true

# This parameter contains name of the XML file with extensions of the FIX protocols.
Validation.AdditionalFieldsFileName = FixEdge1/conf/additionalFields.xml
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
# This parameter controls the validation of required fields in repeating group. 
# 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 group validity 
# rests with the counterparty. 
# The recommended setting is "true". 
# This parameter is optional. 
# The default value is "true". 
Validation.CheckRequiredGroupFields = false

# Encryption config file
# EncryptionConfigFile=encryption.properties

# This parameter allow to automatically resolve sequence gap problem. 
# When mode is ON session uses 141(ResetSeqNumFlag)
# tag in sending/confirming Logon message to reset SeqNum at the initiator or acceptor.
# Valid values:
# * "0" or "false" - Disable ForceSeqNumReset mode
# * "1" or "true" - Enable SeqNum reset at first time of session initiation
# * "2" - Enable SeqNum reset for every session initiation
ForceSeqNumReset=0

# 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 = true

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

# 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 = true

# 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, raw message may contains tags without values - they will be ignored.
# Otherwise exception was fired.
AllowEmptyFieldValue = true

# Specifies total amount of the memory (in MB) that active session may use. 0 - means infinite.
# When limit is overbound - the "hardest" sessions will be closed nongracefully.
TotalOutgoingStorageMemoryLimit = 0


#------------------------------------------------------------
# Default monitoring properties section
#------------------------------------------------------------

# Enabling administration. Allowed values: true, false.
Monitoring.Enable = false

# FIX protocol version. Allowed values: FIX40, FIX41, FIX42, FIX43, FIX44, FIX50.
Monitoring.AdminSessionDef.Version = FIX44

# Assigned value used to identify specific individual or unit intended to receive message.
Monitoring.AdminSessionDef.TargetSubID = 

# Assigned value used to identify specific message originator's location.
Monitoring.AdminSessionDef.SenderLocationID = 

# Assigned value used to identify specific message destination's location.
Monitoring.AdminSessionDef.TargetLocationID = 

# 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.AdminSessionDef.Username = 

# 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 then the session is disconnected 
# without sending a message and the error condition is generated in the log output.
Monitoring.AdminSessionDef.Password = 

# The expected value of the source IP address. 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.AdminSessionDef.SourceIPaddress = 

# The expected value of the encryption method. 
# Allowed values: NONE, PKCS, DES, PKCS_DES, PGP_DES, PGP_DES_MD5, PEM_DES_MD5.
Monitoring.AdminSessionDef.EncryptMethod = NONE

# Ignoring 'SeqNum too low' at incoming Logon message.Allowed values: true, false.
Monitoring.AdminSessionDef.IgnoreSeqNumTooLowAtLogon = false

# Disabling TCP buffer (Nagle algorithm). Allowed values: true, false.
Monitoring.AdminSessionDef.DisableTCPBuffer = false

# Enqueued outgoing messages could merged and sent as a single buffer. This parameter controls how 
# many messages could be merged into the bunch. The 0 means infinite amount.
Monitoring.AdminSessionDef.MaxMessagesAmountInBunch = 0

# Priority of the socket SendReceive operations. Allowed values: EVEN, AGGRESSIVE_SEND.
Monitoring.AdminSessionDef.SocketOpPriority = EVEN


#------------------------------------------------------------
# Administrative session settings section
#------------------------------------------------------------

# AdminSessionNames 
Monitoring.AdminSessionNames = AdminClient

# User monitoring tool (TargetCompId = AdminClient)

# TargetCompId value of administrative session
# Parameter is required
Monitoring.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
Monitoring.AdminSession.AdminClient.Version = FIX44

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

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

# TargetLocationID value of administrative session
# Parameter isn't required. Default value is used if parameter is absent.
Monitoring.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. 
Monitoring.AdminSession.AdminClient.Username = user

# 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.
Monitoring.AdminSession.AdminClient.Password = pass

# 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 *.*.*.*
# Monitoring.AdminSession.AdminClient.SourceIPaddress = localhost

# 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.
Monitoring.AdminSession.AdminClient.EncryptMethod = NONE

# This parameter allow to automatically resolve sequence gap problem. 
# When mode is ON session uses 141(ResetSeqNumFlag)
# tag in sending/confirming Logon message to reset SeqNum at the initiator or acceptor.
# Valid values:
# * "0" or "false" - Disable ForceSeqNumReset mode
# * "1" or "true" - Enable SeqNum reset at first time of session initiation
# * "2" - Enable SeqNum reset for every session initiation
Monitoring.AdminSession.AdminClient.ForceSeqNumResetMode = true

# 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.
Monitoring.AdminSession.AdminClient.IgnoreSeqNumTooLowAtLogon = true

# Disabling TCP buffer of administrative session
# Allowed values: TRUE, FALSE
# Parameter isn't required. Default value is used if parameter is absent.
Monitoring.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.
Monitoring.AdminSession.AdminClient.MaxMessagesAmountInBunch = 10

# Priority of the socket SendReceive operations of administrative session
# Allowed values: EVEN, AGGRESSIVE_SEND
# Parameter isn't required. Default value is used if parameter is absent.
Monitoring.AdminSession.AdminClient.SocketOpPriority = AGGRESSIVE_SEND

AnchorFile=lock

