...
Overview
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 Engine::FixEngine::init(const std::string& aPropertiesFileName = "")
call parameter.
For example:
Code Block | ||
---|---|---|
| ||
Engine::FixEngine::init("FE.properties") |
Engine parameters
EngineRoot
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.
ListenPort
Optional. Port or several ports, delimited by a comma, on which acceptors listen to FIX sessions' incoming connections.
One incoming port can be used for several sessions.
The parameter is ignored for the entire application if a listen port is set for a specific session. In this case, another ListenPort parameter (on session level) is used by FIX Engine.
If the listen port is not set either globally, or for a specific session, FIX Engine will not accept connections.
LogFileName
Optional. Engine's log file name. If this parameter is commented or empty, LogFileName = "engine.log" as default.
Actually represents the alias for the "Log.Engine.File.Name" parameter. If both parameters are specified simultaneously, then:
- If Log.Engine.Device is not specified, "LogFileName" is used;
- If Log.Engine.Device is specified, "Log.Engine.File.Name" is used;
IncludeProperties
Info |
---|
The parameter is available since FIX Antenna C++ 2.31.0 release. |
Optional. This parameter defines the list of paths to the auxiliary properties files to be included in the engine.properties file. FIX Antenna C++ also provides the ability to include auxiliary properties files recursively.
Info |
---|
If some property is specified in several configuration files then the value from the last read file will be used. |
Example: IncludeProperties = Engine/conf/engine.properties1
ListenAddress
Optional. The local IP address of the network interface accepting incoming connections.
Default value: 0.0.0.0 - listens to connections at all network interfaces.
LicenseFile
The license file path.
LogDirectory
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 /logs. The specified directory must exist.
Info |
---|
Since FIX Antenna 2.30.0 version log files stored in the log directory can be cleared and re-written during new log file creation (i.e. on the sequence number reset) if they contain only one administrative outgoing message or no messages at all. |
NumberOfWorkers
A number of threads that serve FIX sessions (heartbeat generation/check, message rejecting, message delay delivering, etc.).
The recommended value is 10. The value must be an integer greater than zero.
Info |
---|
Changing this value will impact the performance of FIX Engine. The most efficient parameter value should be distinguished during testing. |
Tip |
---|
Workers are used for the following operations:
|
OutOfSequenceMessagesStrategy
Info |
---|
The parameter is available since FIX Antenna 2.23.0 release. |
Optional. This parameter sets a strategy for processing out-of-sequence messages. The details about the strategies can be found here: How to set strategy for processing out-of-sequence messages
Valid values:
- RequestAlways - send resend request with BeginSeqNo (7) = <out-of-sequence message number>, EndSeqNo (16) =0 on any out-of-sequence message
- RequestOnce - send the only resend request on the gap. Duplicates of resend requests for the same interval are not sent
- IgnoreGap - send resend request on gap and process out-of-sequence messages
- Queue - use a temporary queue for storing out-of-sequence messages and process them after the gap is closed
Info |
---|
Not supported for FAST sessions. |
Default value: RequestAlways
OutOfSequenceMessagesStrategy.QueueSize
Info |
---|
The parameter is available since FIX Antenna 2.23.0 release. |
Optional. The size of the temporary queue for processing out-of-sequence messages (measured in a count of messages). The parameter is used if parameter OutOfSequenceMessagesStrategy=Queue.
Default value: 2000
A queue should be cleared after exceeding the limit of out-of-sequence messages and a new resend request should be sent.
The details about the strategies can be found here: How to set strategy for processing out-of-sequence messages
DictionariesFilesList
This parameter contains a list of names of XML files with extensions of the FIX protocols delimited by semicolon.
AdditionalParsersList
Info |
---|
Parsers are not used for Market Data Adapters and for FAST Sessions. |
This parameter defines the list of additional (custom) protocols which require registering the corresponding parsers.
When FIX Antenna is started, all dictionaries from DictionariesFilesList are loaded. If dictionaries are standard, predefined standard parsers (like FIX40; FIX41; FIX42; FIX43; FIX44; FIXT11) are created based on them. If any dictionary from DictionariesFilesList is custom, the parser is not automatically created and therefore such parsers should be listed in the AdditionalParsersList parameter.
Format of the value: [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...], where:
- UNIQUE_PARSER_NAME - optional, name of the parser;
- FIXT_PROTOCOL1 - optional, session protocol. Required if APP_PROTOCOL doesn't contain session messages;
- APP_PROTOCOL1 - required, application protocol;
- APP_PROTOCOL2, ... - optional, list of other application protocols.
Below are examples of possible parsers with the correct format:
- MyFixParser@FIXT11:FIX50SP2,FIX50SP1;
- FIXT11:FIX50SP2,FIX50SP1;
- FIXT11:FIX50SP2;
- FIX44.
Example: AdditionalParsersList = FIX44; FIXT11:FIX50SP2; FIXT11:FIX50SP2, FIX50SP1; MyFixParser@FIXT11:FIX50SP2,FIX50SP1
MaximumParsersAllowed
Info |
---|
The parameter is available since FIX Antenna 2.30.0 release. |
Optional. This parameter defines the maximum amount of parsers allowed.
Valid values: An integer greater or equal to 100
Default value: 100
Example: MaximumParsersAllowed = 200
CheckVersionOfOutgoingMessages
This parameter is an option whereby the version of the 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 occurs the error may be seen on the BL (in the case of configured Managed Queue - in the log file). If set to 'false' then the application-level message will be sent to the counterparty.
The recommended value is 'true'.
Info |
---|
Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false. |
Debug.LogSessionExtraParameter
If this property value is true, all session parameters will be printed to the application log file.
BackupDirectory
Relative path to the backup folder.
This folder will be used for message storage files of the backup connections.
Session parameters
To configure a session parameter for a session defined by SenderCompId (49) and TargetCompId (56) the following line should be added to the engine.properties file:
Session.<SenderCompID>/<TargetCompID>.<Parameter> = <value>
To configure the default session parameter the following line should be added to the engine.properties file:
Session.Default.<Parameter> = <value>
LogonTimeFrame
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 an integer and not negative.
LogoutTimeFrame
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 an integer greater than 0.
IntradayLogoutTolerance
An option to not reset sequence numbers after Logout.
Valid values:
- true - enables IntradayLogoutTolerance mode
- false - disables IntradayLogoutTolerance mode
If set to true, sequence numbers are not reset 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, a standard message recovery or gap-filling process takes place.
If set to false, sequence numbers are reset after Logout.
ReasonableTransmissionTime
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, the engine sends the TestRequest message. If the required Response Heartbeat message is not received during the Heartbeat interval plus Delta, then the session moves to the "Telecommunication link failed" state. This parameter is specified in (Heartbeat Interval/100).
The recommended value is 20%.
ForceSeqNumReset
This parameter controls the ResetSeqNumFlag (141) flag in the Logon (A) messages and allows resolving sequence gaps.
When the mode is ON, the session uses the ResetSeqNumFlag (141) tag in sending/confirming the Logon message and reset sequence numbers for an initiator or an acceptor.
Valid values:
- "0" or "false" - Disable ForceSeqNumReset mode. Do not reset sequence numbers on Logon
- "1" or "true" - Reset sequences at the first session initiation
- "2" - Reset sequences for every Logon
DuplicateResendRequestLimit
This parameter specifies the number of duplicate resend request messages (35=2) that can be received before the Application::OnResendRequestLoop callback is called. This gives the user the option to respond to identical resend requests only once and ignore all other duplicates.
Default value: 2
The following conditions cause the FIX Engine to consider resend requests as duplicates:
- The batch of messages that is to be resent, specified by the interval determined by the tags BeginSeqNo (7) & EndSeqNo (16), is the same
- Resend requests are received while the FIX engine is processing other resend requests
Info |
---|
Ignoring resend requests is not compliant with the FIX Standard Protocol. |
The FIX Standard Protocol recommends responding to every resend request received, which can make engine behavior unstable and lead to unexpected traffic growth.
Info |
---|
To follow the FIX Standard Protocol, DuplicateResendRequestLimit should be set to ‘0’. |
Responding to every resend request is not the recommended behavior for FIX Antenna C++ products because doing so may lead to an infinite resend loop when one of the counterparties can’t process a batch of messages properly and initiates a resend request for the same batch of messages again and again. By reducing the volume of outgoing messages and duplicate responses, traffic is minimized and applications on both sides are made more stable.
ThirdPartyRoutingIsEnabled
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 redirects FIX messages automatically to other FIX sessions it maintains if the OnBehalfOfCompID field in the message is defined. If this parameter is set to "false", Engine directs all messages received to the client application.
DelayedProcessing.DeliveryTriesInterval
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 only if the DelayedProcessing.MaxDeliveryTries parameter is specified.
DelayedProcessing.MaxDeliveryTries
Optional. 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 an integer and not negative.
Reconnect.Interval
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 an integer greater than 0.
Reconnect.MaxTries
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 an integer.
MessageTimeToLive
Optional. This parameter sets the time period after which a message rejecting is started while the session doesn't exist.
Value is specified in milliseconds (seconds*10-3), and must be an integer greater than 0.
ResendMessagesBlockSize
Resend Request resend messages by blocks.
This parameter defines how many messages proceed in the block. The value “0” means that all messages will be resent in one block. The value must be an integer and not less than 0.
Default value: 1000
ResetSeqNumAfter24hours
Optional. An option to send a Logon message with the ResetSeqNumFlag set after each 24-hour period of the session's activity to establish a new set of sequence numbers (starting with 1).
Default value: false
Info |
---|
This option does not affect sessions that use version 4.0 of the FIX protocol. |
EncryptionConfigFile
Encryption config file name.
TotalOutgoingStorageMemoryLimit
Specifies the total amount of memory (in MB) that the active session may use.
0 - means infinite. When the limit is reached, the "hardest" sessions will be closed non-gracefully.
OutOfSequenceMessagesStrategy
Info |
---|
The parameter is available since FIX Antenna 2.23.0 release. |
Optional. This parameter sets a strategy for processing out-of-sequence messages for a specific session.
Valid values:
- RequestAlways - send resend request with BeginSeqNo (7) = <out-of-sequence message number>, EndSeqNo (16) =0 on any out-of-sequence message. ResendRequestBlockSize is not supported (will be used strategy RequestOnce).
- RequestOnce - send resend request on gap (considering ResendRequestBlockSize parameter). Duplicates of resend requests for the same interval are not sent.
- IgnoreGap - send resend request on gap and process out-of-sequence messages.
- Queue - use a temporary queue for storing out-of-sequence messages and process them after the gap is closed.
Info |
---|
Is not supported for FAST sessions |
Default value: Engine parameter OutOfSequenceMessagesStrategy
Info |
---|
Old parameters DeliverAppMessagesOutOfOrder, and SuppressDoubleResendRequest must be removed for a specified strategy for sessions. Old parameters have higher priority. |
DeliverAppMessagesOutOfOrder
Info |
---|
The parameter is deprecated |
SuppressDoubleResendRequest
Info |
---|
The parameter is deprecated |
OutOfSequenceMessagesStrategy.QueueSize
Info |
---|
The parameter is available since FIX Antenna 2.23.0 release. |
Optional. The size of the temporary queue for processing out-of-sequence messages (measured in a count of messages). The parameter is used if parameter OutOfSequenceMessagesStrategy=Queue.
Default value: Engine parameter OutOfSequenceMessagesStrategy.QueueSize
A queue should be cleared after exceeding the limit of out-of-sequence messages and a new resend request should be sent.
SocketOpPriority
The mode of how FIX Engine performs the socket Send/Receive operations.
Valid values:
- EVEN (default) - FIX Engine uses the thread pool and share a worker thread among all session with this SocketOpPriority=EVEN
- AGGRESSIVE_SEND - FIX Engine uses a dedicated thread for a session that sends outgoing messages in exceptional cases (if it would block). By default, the current thread is used
- AGGRESSIVE_SEND_ASYNC - FIX Engine uses a dedicated thread for a session that sends all outgoing messages to the queue without trying to send them to the socket first. This mode aims to reduce the time spent on the execution of the session:put method and reduce the impact of slow consumers on the application by parallelizing the socket operations by default.
- AGGRESSIVE_RECEIVE - FIX Engine uses a dedicated thread for a session that receives incoming messages. The engine constantly polls the data from the socket for achieving the minimum latency (See AggressiveReceiveDelay)
- AGGRESSIVE_SEND_AND_RECEIVE - FIX Engine uses two dedicated threads per session. One for receiving and another for sending messages in exceptional cases (if it would block).
DIRECT_SEND - FIX Engine uses the current thread for sending if this would block, performs as "EVEN".
Info DIRECT_SEND mode is available since FIX Antenna 2.23.0 release.
AGGRESSIVE_SEND_ASYNC is available since FIX Antenna 2.30.0 release.
AggressiveReceiveDelay
Optional. Defines a polling interval in microseconds for reading data from the socket.
Works only with aggressive sessions i.e. AGGRESSIVE_RECEIVE or AGGRESSIVE_SEND_AND_RECEIVE modes. Setting a lower value reduces the latency but causes high CPU utilization.
Default value: AggressiveReceiveDelay = 500
Info |
---|
There is no delay after an attempt to receive a message if the socket buffer is still not empty. |
AggressiveAsyncSpinWaitTimeUs
Info |
---|
The parameter is available since FIX Antenna 2.30.0 release. |
Optional. Defines the amount of time during which the message must be sent in the AGGRESSIVE_SEND_ASYNC mode.
Valid values: An integer greater or equal to 0
Default value: AgressiveAsyncSpinWaitTimeUs = 1000
OutgoingQueueBlockSize
Info |
---|
The parameter is available since FIX Antenna 2.30.0 release. |
Optional. Defines the size of the memory pool block for the outgoing messages queue. Applicable for the following values of the SocketOpPriority: AGGRESSIVE_SEND, AGGRESSIVE_SEND_ASYNC, AGGRESSIVE_SEND_AND_RECEIVE.
Valid values: An integer greater than 0.
Default value: OutgoingQueueBlockSize = 4096
OutgoingQueueSize
Info |
---|
The parameter is available since FIX Antenna 2.30.0 release. |
Optional. Defines the amount of memory pool blocks for the outgoing messages queue. Applicable for the following values of the SocketOpPriority: AGGRESSIVE_SEND, AGGRESSIVE_SEND_ASYNC, AGGRESSIVE_SEND_AND_RECEIVE.
Valid values: An integer greater than 0.
Default value: OutgoingQueueSize = 15
Optional. Specifies a defined schedule for the session.
There is no defined schedule by default. See details in the Programmer's Guide.
SSL
Info |
---|
The parameter is available since FIX Antenna 2.26.0 release. |
For Initiator FIX Session:
Mandatory if SSL is used. Enable SSL support for the session.
Default value: false
For Acceptor FIX Session:
Optional. If true, accept SSL connection only. If false, accept both SSL and non-SSL connections for the session.
Default value: false
ParserVersion
Info |
---|
The parameter is available since FIX Antenna 2.25.1 release. |
Name of unique parser for FIX protocol. It is an identification of the FIX dictionary used for the session, i.e. the value of the 'id
' parameter or in the case of QuickFIX dictionary it's a filename.
Valid values:
FIX40
FIX41
FIX42
FIX43
FIX44,
FIXT11@FIX50
FIXT11@FIX50SP1
FIXT11@FIX50SP2
- <user's transport version>@<user's protocol version>
Info |
---|
Since FIX Antenna C++ 2.30.0 release the applied parser will be logged as a general parameter on session start-up in the following format: applied ParserVersion = [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...]
|
Role
Info |
---|
The parameter is available since FIX Antenna 2.25.1 release. |
Role of the session.
Possible values:
- Initiator
- Acceptor
Host
Info |
---|
The parameter is available since FIX Antenna 2.25.1 release. |
The destination host for the initiator session.
Port
Info |
---|
The parameter is available since FIX Antenna 2.25.1 release. |
TCP port for connection to the remote site.
ListenPort
Info |
---|
The parameter is available since FIX Antenna 2.28.0 release. |
Port dedicated for a session.
For acceptors, it is a port that listens to incoming connections for a specified session.
Info |
---|
The same incoming port cannot be reused for several sessions. |
The Engine stops accepting connections to the given port when the session is no longer used, i.e. terminated. For example, the session is terminated according to the schedule.
ListenAddress
Info |
---|
The parameter is available since FIX Antenna 2.28.0 release. |
The local IP address of the network interface accepting a specified session.
Default value: 0.0.0.0 - listens to connections on all network interfaces.
SourceIPAddress
The expected IP address of a remote counterparty. Incoming connections from other endpoints will be filtered out.
If the real value is not equal to the expected one, then the connections are dropped without sending a message and the error condition is generated in the log output.
The parameter supports masks. For example: 10.96.0.0/11
Default value: 0.0.0.0 - accepts all connections from IP addresses on every network interface.
HBI
Info |
---|
The parameter is available since FIX Antenna 2.25.1 release. |
The heartbeat interval is in seconds for the initiator session.
CustomLogonMessageFileName
Info |
---|
The parameter is available since FIX Antenna 2.25.1 release. |
Optional. This property defines the path to the file with a custom Logon message for the initiator.
Default value: empty
TagsDelimiter
Info |
---|
The parameter is available since FIX Antenna 2.28.0 release. |
The character is used as a tag delimiter in a FIX message. Refer to How to use a custom symbol instead of SOH.
Default value: '0x01' (SOH)
ResetSeqNumFromFirstLogon
Info |
---|
The parameter is available since FIX Antenna 2.28.0 release. |
This parameter provides the ability to reset a session’s sequence numbers to the ones received in the Logon message in the case where session sequence numbers seem outdated.
The following fields control the frequency with which the sequence numbers are reset:
- ‘never’ – sequence numbers do not reset at logon
- ‘schedule’ – sequence numbers reset according to an existing schedule defined by the schedule parameter of the session, initiated by a first-time logon message
- cron expression – sequence numbers reset according to a customizable date and time, initiated by a first-time logon message
Default value: never
This parameter can be added via the engine.properties file for the acceptor session or set it via API.
ResetSeqNumOnNonGracefulTermination
Info |
---|
The parameter is available since FIX Antenna 2.28.0 release. |
This parameter provides the option, upon a session’s non-graceful termination, to reset sequence numbers. To use this functionality, set it to ‘true’. Then, following non-graceful termination, ingoing and outgoing sequence numbers will be reset to 1.
Default value: false
If the parameter is set to ‘false’, incoming and outgoing sequence numbers will not be reset following non-graceful termination.
This parameter can be added via the engine.properties file for the acceptor session or set it via API.
ConfirmingLogonStrategy
This parameter controls the engine’s behavior when a Logout (5) message is received instead of confirming Logon (A) during a FIX login procedure.
FIX engine supports the following strategies:
Value | Response |
---|---|
'RejectLogout' | Reject unexpected Logout (5) message and send a Logout message with the reason ‘ The event is logged with the notification "Option ConfirmingLogonStrategy is set to RejectLogout. The Logout messages received in response to Logon will be treated as an unexpected behavior." and the connection is terminated in this case. |
'ConfirmLogout' | Accepts the unexpected Logout (5) message and send a Logout with the reason ‘ The expected MsgSeqNum of the next incoming sequence number is updated if there is no gap detected. FIX Engine switches session's state to CORRECTLY_TERMINATED |
'SilentLogout' | FIX Engine switches the session's state to NON_GRACEFULLY_TERMINATED without sending messages to the counterparty. The expected MsgSeqNum of the next incoming sequence number is updated if there is no gap detected |
Default value: RejectLogout
ConnectAddress
Optional. Engine's local IP address to send messages from.
It is used only for hosts with multiple networks. If this parameter is commented, empty, or equal to 0.0.0.0 the Engine will send IP datagrams from any/all local addresses.
ConnectPort
An outbound port is used to connect to the counter-party. The parameter applies only if the parameter ConnectAddress is specified, for using a port and any network interface ConnectAddress should be set to 0.0.0.0.
Info |
---|
Do not confuse this parameter with the Port specifying the destination port. |
Optional. The default value is 0 letting the operating system decide what outbound port will be used.
The value of this parameter can't be equal to the value of ListenPort because this port is already occupied by the system.
CustomRawDataTagStrategies
CustomRawDataTagStrategies.<N>.Encoding
CustomRawDataTagStrategies.<N>.Strategy
CustomRawDataTagStrategies.<N>.Tag
CustomRawDataTagStrategies.Count
CustomSessionType
Specifies a type of session type with specific encryption or authentication rules.
- GENERIC - default FIX session
- LME_SELECT- encrypts password tag each time
- TOTAL_SSN_TYPES - Represents a number of sessions types
- CME_SECURE_LOGON - use CME Globex API Secure Logon scheme
details can be found here How to connect to CME Globex using Secure Logon
Default value: GENERIC
FixKey
Mandatory if CustomSessionType = LME_SELECT.
Specifies a FIX key for LME sessions.
CMESecureKeysFile
Info |
---|
The parameter is available since FIX Antenna 2.23.0 release. |
Mandatory if CustomSessionType = CME_SECURE_LOGON.
Specifies a path to CME key files used for CME secure logon.
EnableCyclicSwitchBackupConnection
Defines if there should be an auto switch to the primary connection in case a backup connection is used and it erupted.
When set to 'true', a connection will be switched from primary to backup and back until the connection will be established.
Default value: false
EnableAutoSwitchToBackupConnection
Defines if there should be an auto switch to the backup connection in case the primary connection is used and it is interrupted.
Valid values:
- true - to enable EnableAutoSwitchToBackupConnection mode;
- false - to disable EnableAutoSwitchToBackupConnection mode.
DisableTCPBuffer
When set to 'true', the TCP buffer (Nagle algorithm) will be disabled for a session.
Default value: false
EnableFastScp
EnableMessageRejecting
When set to 'true', the session rejects application messages when the session is unable to send them during a specified period or was disconnected.
Default value: false
EncryptMethod
FASTCodecParameters.BoolNtoString
FASTCodecParameters.BoolYtoString
ForcedReconnect
When set to 'true' the session will try to reconnect when:
In the WaitForConfirmLogon state, when the session received an unconfirmed logon
In the WaitForConfirmLogon state, when the logon frame has expired
In Reconnect state, when the session was closed.
Default value: false
GenerateCheckSum
If set to 'false', the session will not calculate CRC for outgoing messages.
Default value: true
HandleSeqNumAtLogon
HiddenLogonCredentials
Masks password in in/out log files
Default value: false
IgnoreSeqNumTooLowAtLogon
When set to 'true', the session ignores 'SeqNum too low' at an incoming Logon message and continues with the received SeqNum.
Default value: false
IntradayLogoutToleranceMode
If set to 'false' FIX Engine ends the trading day for the session after Logout (5) from the counterparty and the session becomes correctly terminated. A sequence number reset is expected after receiving the logout.
If set to 'true' FIX Engine will be able to re-establish the session multiple times and treats every disconnection as an unexpected switching session to a NON-GRACEFULLY TERMINATED state. This option is recommended if multiple reconnections are expected during the trading session.
Default value: false
IsForwardingFixMessagesToLog
KeepConnectionState
Optional. This property defines whether primary to backup (and vice versa) connection switching continues using existing messages storage.
Valid values: 'true' | 'false'
Default value: true
LogDirectory
Info |
---|
The parameter is available since FIX Antenna 2.30.0 release. |
Optional.Defines the path to the directory in which logs of the primary connection of the session are stored.
If this property is not specified with value then the value of the LogDirectory will be used.
LogonMessageSessionQualifierTag
Defines the tag of the field to be used by FIX Engine when dispatching an incoming connection.
SessionQualifier is passed in this field. SenderCompID(49), TargetCompID(56), and this field are used for searching for the appropriated acceptor among existing registered acceptors. The field is optional if the application doesn't intend to accept an incoming connection.
See also SessionId and SessionQualifier Notes
MaskedTags
Optional. This parameter contains a list of sensitive tags whose values should be masked in the log files (for example, Username and Password). These tag values in in/out log files for the messages of A, BE, BF, n types will be replaced with ***.
Example: FixLayer.FixEngine.Session.TestFIXAcceptor.MaskedTags = 554,553.
The message will be written to the log file in the following way: 8=FIX.4.4^9=85^35=A^49=a_t1^56=a_s1^34=1^52=20161005-17:29:14.339^98=0^108=10^141=Y^553=***^554=***^10=176^
Masks are also applied to User Modification messages (MsgType = CB).
MaxMessagesAmountInBunch
Enqueued outgoing messages could be merged and sent as a single batch with the size specified by this parameter.
Default value: 0 (means infinite amount).
MessagesStorageSize
This parameter specifies in-memory messages storage size.
Default value: 20000.
Password
UserThe user's password for the session.
For initiator: The value of this field will be transferred to the acceptor in the Password (Tag 554) field of the Logon(A) message;
For acceptor: The value of this field will be compared to the value of the Password (Tag 554) field of the incoming Logon(A) message. If values are not equal, Logon will be rejected.
PasswordTag
Specifies a tag used to store a password
ReconnectInterval
This parameter specifies the time interval between reconnection attempts in order to restore a communications link.
This value is specified in milliseconds. The recommended value is 1000 for dedicated connections and private networks. Internet connections may require calibration.
The value must be an integer greater than 0.
Default value: 1000.
ReconnectMaxTries
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.
Default value: 3
ResendRequestBlockSize
Defines the number of messages requested using Resend Request messages.
If the message sequence gap is larger than SessionExtraParameters::resendRequestBlockSize_, Session will split resend requests by blocks of SessionExtraParameters::resendRequestBlockSize_ size.
Default value: -1
SenderLocationID
SenderLocationID (142) assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader).
The property is ignored if it is not specified.
SenderSubID
SenderSubID (50) assigned value used to identify specific message originator (desk, trader, etc.).
The property is ignored if it is not specified.
SendingTimestampUnit
Info |
---|
The parameter is available since FIX Antenna 2.20.0 release. |
Defines the precision of the timestamp to be specified in tags SendingTime (52) and OrigSendingTime (122) in the outgoing message.
Valid values:
- second
- millisecond
- microsecond
- nanosecond
Default values:
For FIX 4.0 и FIX 4.1:Info |
---|
The ability to export the Password value from the vault (i.e. Azure Key Vault) is available since the FIX Antenna C++ 2.32.0 release. |
FIX Antenna C++ provides the ability to export the Password value from the vault using a script. This can be achieved by defining the Password property in the engine.properties file in the following format:
Session.Session_Name.Password = script://@[timeout=<value>, trim]<path_to_script>
Where
- timeout -is anoptional attribute that defines the time interval to wait for successful script execution. If this attribute is not defined, then 5 sec will be used by default.
- trim - is an optional attribute that defines whether the value returned by the script should be trimmed. If this attribute is present, then the line break symbol will be deleted from the Password value received from the vault.
- path to script - is a path to the script that will be used to get the Password from the vault. If the path is relative, it must be relative to the current working directory.
Info |
---|
This feature additionally allows the execution of procedural scripts, if necessary. |
PasswordTag
Specifies a tag used to store a password
ReconnectInterval
This parameter specifies the time interval between reconnection attempts in order to restore a communications link.
This value is specified in milliseconds. The recommended value is 1000 for dedicated connections and private networks. Internet connections may require calibration.
The value must be an integer greater than 0.
Default value: 1000.
ReconnectMaxTries
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.
Default value: 3
ResendRequestBlockSize
Defines the number of messages requested using Resend Request messages.
If the message sequence gap is larger than SessionExtraParameters::resendRequestBlockSize_, Session will split resend requests by blocks of SessionExtraParameters::resendRequestBlockSize_ size.
Default value: -1
SenderLocationID
SenderLocationID (142) assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader).
The property is ignored if it is not specified.
SenderSubID
SenderSubID (50) assigned value used to identify specific message originator (desk, trader, etc.).
The property is ignored if it is not specified.
SendingTimestampUnit
Info |
---|
The parameter is available since FIX Antenna 2.20.0 release. |
Defines the precision of the timestamp to be specified in tags SendingTime (52) and OrigSendingTime (122)
precision is secondsSendLastMsgSeqNumProcessed
SocketBusyPollTime
SocketRecvBufSize
in the outgoing message.
Valid values:
- second
- millisecond
- microsecond
- nanosecond
Default values:
- For FIX 4.0 и FIX 4.1:
- if KeepMillisecondsInUTCTimeFields = 0, then tags SendingTime (52) and OrigSendingTime (122) precision is seconds
- if KeepMillisecondsInUTCTimeFields = 1, then SendingTime (52) has seconds precision and OrigSendingTime (122) has milliseconds precision
- if KeepMillisecondsInUTCTimeFields = 2, then tags SendingTime (52) and OrigSendingTime (122) precision is seconds
- Millisecond for all other FIX versions.
SendLastMsgSeqNumProcessed
SocketBusyPollTime
SocketRecvBufSize
Socket incoming buffer size.
Default value: -1 (unlimited)
SocketSendBufSize
Socket outgoing buffer size.
Default value: -1 (unlimited).
SocketTcpMaxSeg
StorageRecoveryStrategy
StorageType
Message storage type
Valid values:
- persistent - save messages to the disk
- persistentMM - save messages to the disk using memory-mapped files
- splitPersistent - save messages to the disk and limit maximum storage size
- transient - keep messages in memory
- null - do not keep the session state at all
Default value: persistentMM
TargetLocationID
TargetLocationID (143) assigned value used to identify specific message destination's location (i.e. geographic location and/or desk, trader).
The property is ignored if it is not specified.
TargetSubID
TargetSubID (57) assigned value used to identify a specific individual or unit intended to receive the message.
'ADMIN' is reserved for administrative messages not intended for a specific user.
The property is ignored if it is not specified.
Transport
Low-level transport of the session.
Valid values:
- SOCKETS - Kernel sockets
- MYRICOM_DBL - Myricom DBL sockets
Default value: SOCKETS
UseAsyncConnect
When set to 'true', the session initiator will use async TCP connect.
Default value: false
UseBlockingSockets
If set to 'true', the session will use blocking I/O.
This mode is useful for OpenOnload and is enabled if the aggressive mode is ON. AggressiveReceiveDelay or Engine::SessionExtraParameters::aggressiveReceiveDelay_ are used as a timeout parameter.
See also:
Default value: false
Username
User name for the session.
Username
User name for the session.
For initiator: The value of this field will be transferred to the acceptor in the Username (Tag 553) field of the Logon(A) message;
For acceptor: The value of this field will be compared to the value of the Username (Tag 553) field of the incoming Logon(A) message. If values are not equal, Logon will be rejectedFor initiator: The value of this field will be transferred to the acceptor in the Username (Tag 553) field of the Logon(A) message;
For acceptor: The value of this field will be compared to the value of the Username (Tag 553) field of the incoming Logon(A) message. If values are not equal, Logon will be rejected.
Info |
---|
The ability to export the Username value from the vault (i.e. Azure Key Vault) is available since the FIX Antenna C++ 2.32.0 release. |
FIX Antenna C++ provides the ability to export the Username value from the vault using a script. This can be achieved by defining the Username property in the engine.properties file in the following format:
Session.Session_Name.Username = script://@[timeout=<value>, trim]<path_to_script>
Where
- timeout -is anoptional attribute that defines the time interval to wait for successful script execution. If this attribute is not defined, then 5 sec will be used by default.
- trim - is an optional attribute that defines whether the value returned by the script should be trimmed. If this attribute is present, then the line break symbol will be deleted from the Username value received from the vault.
- path to script - is a path to the script that will be used to get the Username from the vault. If the path is relative, it must be relative to the current working directory.
Info |
---|
This feature additionally allows the execution of procedural scripts, if necessary. |
UsernameTag
Specifies a tag used to store a username
Storages
LogIncomingMessages
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 the extension "*.in".
Info |
---|
Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false. |
OutgoingMessagesStorageSize
This parameter defines the upper limit to the number of outgoing messages that are resent in the event of a Resend Request.
The recommended value is 20000 if no data on mean activity is known.
Info |
---|
Changing this value will impact the performance of FIX Engine. Large storage increases the application working set. |
ExtraSafeMode
If this parameter is set to 'true' then file streams are flushed after each I/O operation.
Info |
---|
Changing this value will impact the performance of FIX Engine. In development and in production should be true. |
TimestampsInLogs
Optional. An option to write timestamps in the log files.
Default value: true.
Info |
---|
Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false. |
EnableIncrementalLogFileCreation
Setting the property "true" will reserve 10MB of disc space for logging.
If the log reaches 10Mbs, another 10Mbs will be reserved, and so on. When a property is set to 'true' FixAntenna performance is greatly increased.
Persistents.LogIncrementSize
Specifies the amount of memory in bytes reserved for memory-mapped file message storage for *.out/*.in files.
It defines how FIX Antenna reserves space on the HDD for PersistentMM (in any cases) and Persistent (if EnableIncrementalLogFileCreation is ON). It is recommended to set a large enough value to minimize the number of resizes during the storage lifetime. Each resize can cause a latency spike.
Info |
---|
Changing this value will impact the performance of FIX Engine. |
Persistents.IdxIncrementSize
Specifies the amount of memory in bytes reserved for memory-mapped file message storage for *.idx file It defines how FIX Antenna reserves space on the HDD for PersistentMM (in any cases) and Persistent (if EnableIncrementalLogFileCreation is ON).
It is recommended to set a large enough value to minimize the number of resizes during the storage lifetime. Each resize can cause a latency spike.
Info |
---|
Changing this value will impact the performance of FIX Engine. In the development should be true. In production should be false. |
Persistents.MinDiskSpace
Info |
---|
This parameter is available since FIX Antenna 2.30.0 release. |
This property specifies the minimal disk space in Mb available on the session's logs device in order to start the session.
Default value: 50
SplitPersistentMsgStorage.BackupDir
This property is the path to the directory, where sliced message storage will search for log files in case they are not found in the primary location.
It is the user's responsibility to move files from the primary location to the backup.
Default value: empty - backup path disabled
SplitPersistentMsgStorage.MaxSliceSize
Specifies the maximum size of one slice for sliced message storage.
Info |
---|
Storage slices are created with steps, specified by Persistents.LogIncrementSize parameter value. If the MaxSliceSize value is no multiple of Persistents.LogIncrementSize, the result file size will be less than specified. If value is less than LogIncrementSize, LogIncrementSize value will be used. |
Recommended value: any multiple of Persistents.LogIncrementSize.
Default value: 500000000 - 500Mb
MessageStorage.IndexRebuildEnabled
Optional. If this parameter is set to 'true', FIX Engine will try to restore the index file from the log file in case the index file is missed or corrupted.
Default value: false
Info |
---|
Please be careful when you enable this property: restoring process uses some heuristic algorithms, and some data (not messages) could be missed. |
MessageStorage.RequireRejectFlagSupport
Optional. If this option is enabled, FIX Engine will not rebuild index files for message storage, that does not support the embedded Reject Flag Marker.
Default value: true
MessageStorage.TimestampUnit
Optional. This property specifies precision of timestamps in session logs (.in / .out storage files).
Possible values: "millisecond", "microsecond", "nanosecond".
Default value: millisecond
NewFeatures.EnableOptimizedPersistentMMIndex
Optional. This property enables the method of maintaining the start-up of FIX sessions with log files in the PersistentMM storage marked with the 'correctly stored' flag. If this property is set to 'true' FIXEdge will skip the check of the 'stored correctly' log files in order to improve performance.
Valid values:
- true - enables OptimizedPersistentMMIndex mode
- false - disables OptimizedPersistentMMIndex mode
Formats of PersistentMM log files with and without enabled NewFeatures.EnableOptimizedPersistentMMIndex property are incompatible.
Default value: true
...