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?)
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
1.5.6