• Version 1.19.0
Show / Hide Table of Contents

Loading Engine Settings From Configuration Files

The EngineSettings values can be loaded from a configuration file using the LoadFromConfigurationFile(string) method. This method reads the FixEngine configuration section from the .NET application configuration file (YourApplicationName.dll.config) or the XML, JSON or INI file specified by the configFileName parameter.

You can also load settings from a stream using LoadFromConfigurationStream(Stream, ConfigurationFormat) and one of the values of ConfigurationFormat.

For example:

var settings = new EngineSettings();

settings.LoadFromConfigurationFile();

Engine.Init(settings);

Property Names

Property names are described in the EngineSettings.Key class.

Sample Configuration Files

.NET Application Configuration File Sample

<?xml version="1.0"?>
<configuration>

    <configSections>
        <section name="FixEngine" type="System.Configuration.NameValueSectionHandler"/>
    </configSections>

    <FixEngine>
        <add key="DisableNetworkLevel" value="true"/>
        <add key="Dictionary" value="Dictionary1.xml|Dictionary2.xml|Dictionary3.xml"/>
        <add key="FileBasedStorage.SegmentSize" value="1000"/>
        <add key="FileBasedStorage.IgnoreIntegrityErrors" value="true"/>
        <add key="HeartbeatInterval" value="60"/>
        <add key="License.Store" value="License"/>
        <add key="License.AlertingDaysBeforeExpiration" value="1024"/>
        <add key="ListenPort" value="5555,6666,7777"/>
        <add key="LocalTimeUsage" value="true"/>
        <add key="LocalNetworkInterface" value="255.255.255.155"/>
        <add key="Log.Directory" value="Log"/>
        <add key="Log.InboundMessages" value="false"/>
        <add key="Log.OutboundMessages" value="false"/>
        <add key="Log.BeforeSending" value="false"/>
        <add key="LogonTimeout" value="10"/>
        <add key="LogoutTimeout" value="10"/>
        <add key="MessageGrouping" value="10"/>
        <add key="ProcessDeliverToCompId" value="false"/>
        <add key="Reconnect.Attempts" value="32"/>
        <add key="Reconnect.Interval" value="64"/>
        <add key="ReasonableTransmissionTime" value="50"/>
        <add key="Receive.BufferSize" value="32768"/>
        <add key="Receive.SpinningTimeout" value="1000"/>
        <add key="Resending.QueueSize" value="2000"/>
        <add key="Resending.BatchSize" value="5000"/>
        <add key="ResendRequestMaximumRange" value="256"/>
        <add key="Send.BufferSize" value="32768"/>
        <add key="Send.QueueMaxSize" value="134217728"/>
        <add key="Send.LogoutOnException" value="false"/>
        <add key="Send.LogoutOnInvalidLogon" value="false"/>
        <add key="Send.SpinningTimeout" value="1000"/>
        <add key="SetLastMsgSeqNumProcessed" value="true"/>
        <add key="SetApplVerId" value="false"/>
        <add key="StorageReadingMode" value="NoEmbeddedSohCharacters"/>
        <add key="SessionStorageFileFlushPolicy" value="None"/>
        <add key="SupportNextExpectedMsgSeqNum" value="true"/>
        <add key="ScrambledLogonFields" value="554,925"/>
        <add key="TcpNoDelay" value="false"/>
        <add key="UpdateSendingTime" value="false"/>
        <add key="UseIndexFile" value="true"/>
        <add key="Validate.EmptyFieldValues" value="true"/>
        <add key="Validate.FieldValues" value="true"/>
        <add key="Validate.CheckSum" value="true"/>
        <add key="Validate.DuplicatedFields" value="true"/>
        <add key="Validate.RepeatingGroupEntryCount" value="true"/>
        <add key="Validate.RepeatingGroupLeadingField" value="true"/>
        <add key="Validate.RequiredFields" value="true"/>
        <add key="Validate.UnknownFields" value="true"/>
        <add key="Validate.UnknownMessages" value="true"/>
        <add key="Versions" value="Fix42|Fix44"/>
        <add key="SSL.Protocol" value="Tls11|Tls12"/>
    </FixEngine>

</configuration>

XML Configuration File Sample

<?xml version="1.0"?>
<configuration>
    <FixEngine>
        <DisableNetworkLevel>true</DisableNetworkLevel>
        <Dictionary>Dictionary1.xml|Dictionary2.xml|Dictionary3.xml</Dictionary>
        <FileBasedStorage.SegmentSize>1000</FileBasedStorage.SegmentSize>
        <FileBasedStorage.IgnoreIntegrityErrors>true</FileBasedStorage.IgnoreIntegrityErrors>
        <HeartbeatInterval>60</HeartbeatInterval>
        <License.Store>License</License.Store>
        <License.AlertingDaysBeforeExpiration>1024</License.AlertingDaysBeforeExpiration>
        <ListenPort>5555,6666,7777</ListenPort>
        <LocalTimeUsage>true</LocalTimeUsage>
        <LocalNetworkInterface>255.255.255.155</LocalNetworkInterface>
        <Log.Directory>Log</Log.Directory>
        <Log.InboundMessages>false</Log.InboundMessages>
        <Log.OutboundMessages>false</Log.OutboundMessages>
        <Log.BeforeSending>false</Log.BeforeSending>
        <LogonTimeout>10</LogonTimeout>
        <LogoutTimeout>10</LogoutTimeout>
        <MessageGrouping>10</MessageGrouping>
        <ProcessDeliverToCompId>false</ProcessDeliverToCompId>
        <Reconnect.Attempts>32</Reconnect.Attempts>
        <Reconnect.Interval>64</Reconnect.Interval>
        <ReasonableTransmissionTime>50</ReasonableTransmissionTime>
        <Receive.BufferSize>32768</Receive.BufferSize>
        <Receive.SpinningTimeout>1000</Receive.SpinningTimeout>
        <Resending.QueueSize>2000</Resending.QueueSize>
        <Resending.BatchSize>5000</Resending.BatchSize>
        <ResendRequestMaximumRange>256</ResendRequestMaximumRange>
        <Send.BufferSize>32768</Send.BufferSize>
        <Send.QueueMaxSize>134217728</Send.QueueMaxSize>
        <Send.LogoutOnException>false</Send.LogoutOnException>
        <Send.LogoutOnInvalidLogon>false</Send.LogoutOnInvalidLogon>
        <Send.SpinningTimeout>1000</Send.SpinningTimeout>
        <SetLastMsgSeqNumProcessed>true</SetLastMsgSeqNumProcessed>
        <SetApplVerId>false</SetApplVerId>
        <StorageReadingMode>NoEmbeddedSohCharacters</StorageReadingMode>
        <SessionStorageFileFlushPolicy>None</SessionStorageFileFlushPolicy>
        <SupportNextExpectedMsgSeqNum>true</SupportNextExpectedMsgSeqNum>
        <ScrambledLogonFields>554,925</ScrambledLogonFields>
        <TcpNoDelay>false</TcpNoDelay>
        <UpdateSendingTime>false</UpdateSendingTime>
        <UseIndexFile>true</UseIndexFile>
        <Validate.CheckSum>true</Validate.CheckSum>
        <Validate.DuplicatedFields>true</Validate.DuplicatedFields>
        <Validate.EmptyFieldValues>true</Validate.EmptyFieldValues>
        <Validate.FieldValues>true</Validate.FieldValues>
        <Validate.RepeatingGroupEntryCount>true</Validate.RepeatingGroupEntryCount>
        <Validate.RepeatingGroupLeadingField>true</Validate.RepeatingGroupLeadingField>
        <Validate.RequiredFields>true</Validate.RequiredFields>
        <Validate.UnknownFields>true</Validate.UnknownFields>
        <Validate.UnknownMessages>true</Validate.UnknownMessages>
        <Versions>Fix42|Fix44</Versions>
        <SSL.Protocol>Tls11|Tls12</SSL.Protocol>
    </FixEngine>
</configuration>

JSON Configuration File Sample

{
  "FixEngine": {
    "DisableNetworkLevel": "true",
    "Dictionary": "Dictionary1.xml|Dictionary2.xml|Dictionary3.xml",
    "FileBasedStorage.SegmentSize": "1000",
    "FileBasedStorage.IgnoreIntegrityErrors": "true",
    "HeartbeatInterval": "60",
    "License.Store": "License",
    "License.AlertingDaysBeforeExpiration": "1024",
    "ListenPort": "5555,6666,7777",
    "LocalTimeUsage": "true",
    "LocalNetworkInterface": "255.255.255.155",
    "Log.Directory": "Log",
    "Log.InboundMessages": "false",
    "Log.OutboundMessages": "false",
    "Log.BeforeSending": "false",
    "MessageGrouping": "10",
    "ProcessDeliverToCompId": "false",
    "LogonTimeout": "10",
    "LogoutTimeout": "10",
    "Reconnect.Attempts": "32",
    "Reconnect.Interval": "64",
    "ReasonableTransmissionTime": "50",
    "Receive.BufferSize": "32768",
    "Receive.SpinningTimeout": "1000",
    "Resending.QueueSize": "2000",
    "Resending.BatchSize": "5000",
    "ResendRequestMaximumRange": "256",
    "Send.BufferSize": "32768",
    "Send.QueueMaxSize": "134217728",
    "Send.LogoutOnException": "false",
    "Send.LogoutOnInvalidLogon": "false",
    "Send.SpinningTimeout": "1000",
    "SetLastMsgSeqNumProcessed": "true",
    "SetApplVerId": "false",
    "StorageReadingMode": "NoEmbeddedSohCharacters",
    "SessionStorageFileFlushPolicy": "None",
    "SupportNextExpectedMsgSeqNum": "true",
    "ScrambledLogonFields": "554,925",
    "TcpNoDelay": "false",
    "UpdateSendingTime": "false",
    "UseIndexFile": "true",
    "Validate.CheckSum": "true",
    "Validate.EmptyFieldValues": "true",
    "Validate.DuplicatedFields": "true",
    "Validate.FieldValues": "true",
    "Validate.RepeatingGroupEntryCount": "true",
    "Validate.RepeatingGroupLeadingField": "true",
    "Validate.RequiredFields": "true",
    "Validate.UnknownFields": "true",
    "Validate.UnknownMessages": "true",
    "Versions": "Fix42|Fix44",
    "SSL.Protocol": "Tls11|Tls12"
  }
}

INI Configuration File Sample

[FixEngine]
DisableNetworkLevel=true
Dictionary=Dictionary1.xml|Dictionary2.xml|Dictionary3.xml
FileBasedStorage.SegmentSize=1000
FileBasedStorage.IgnoreIntegrityErrors=true
HeartbeatInterval=60
License.Store=License
License.AlertingDaysBeforeExpiration=1024
ListenPort=5555,6666,7777
LocalTimeUsage=true
LocalNetworkInterface=255.255.255.155
Log.Directory=Log
Log.InboundMessages=false
Log.OutboundMessages=false
Log.BeforeSending=false
MessageGrouping=10
ProcessDeliverToCompId=false
LogonTimeout=10
LogoutTimeout=10
Reconnect.Attempts=32
Reconnect.Interval=64
ReasonableTransmissionTime=50
Receive.BufferSize=32768
Receive.SpinningTimeout=1000
Resending.QueueSize=2000
Resending.BatchSize=5000
ResendRequestMaximumRange=256
Send.BufferSize=32768
Send.QueueMaxSize=134217728
Send.LogoutOnException=false
Send.LogoutOnInvalidLogon=false
Send.SpinningTimeout=1000
SetLastMsgSeqNumProcessed=true
SetApplVerId=false
StorageReadingMode=NoEmbeddedSohCharacters
SessionStorageFileFlushPolicy=None
SupportNextExpectedMsgSeqNum=true
ScrambledLogonFields=554,925
TcpNoDelay=false
UpdateSendingTime=false
UseIndexFile=true
Validate.CheckSum=true
Validate.EmptyFieldValues=true
Validate.DuplicatedFields=true
Validate.FieldValues=true
Validate.RepeatingGroupEntryCount=true
Validate.RepeatingGroupLeadingField=true
Validate.RequiredFields=true
Validate.UnknownFields=true
Validate.UnknownMessages=true
Versions=Fix42|Fix44
SSL.Protocol=Tls11|Tls12
In this article
Back to top Copyright © Onix Solutions.
Generated by DocFX