Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2

FIX Antenna .NET Core 1.2.2

FIX Antenna .NET Core 1.2.2 is released on .

Fixed Bugs

  • Fixed the issue when the old logs could not be removed from the storage when storageCleanupMode=Delete and storageFactory=Epam.FixAntenna.NetCore.FixEngine.Storage.SlicedFileStorageFactory.

FIX Antenna .NET Core 1.2.1

FIX Antenna .NET Core 1.2.1 is released on .

Fixed Bugs

  • Fixed the issue when the race condition occurred on accepting the new FIX connection.

FIX Antenna .NET Core 1.2.0

FIX Antenna .NET Core 1.2.0 is released on .

New Features and Improvements

  • Expand
    titleThe ability to load global settings from the properties file located in any directory was added.

    The ability to load settings from the fixengine.properties file located in any directory via Config.ConfigurationDirectory parameter ConfigurationDirectory parameter was added. The value of the Config.ConfigurationDirectory parameter can be specified as a path in the client's code.

  • Expand
    titleNew type for EntryImpl.AddTag method was added.

    New CHAR override-method type for EntryImple.AddTag method was added.

  • Expand
    titleCase-sensitive register functionality was removed for properties in the fixengine.properties file.

    For example, now the name of the sessionsthe sessions.testSession.senderCompID property can be written as:

    • sessions.testSession.senderCompId
    • Sessions.TestSession.SenderCompID
    • SESSIONS.testSession.senderCompID

Other Changes

  • Stopped testing TLS 1.0 and 1.1 versions.

Fixed Bugs

  • Fixed the issue when the outgoing Logon message did not contain the 141=Y field when the incoming Logon message contained it and the ignoreResetSeqNumFlagOnReset was ignoreResetSeqNumFlagOnReset was set to 'true'.
  • Fixed the issue when FIX Antenna .NET Core unexpectedly sent not-required TestRequests messages.
  • Fixed the issue when FIX Antenna .NET Core added misleading log entry "Skipping message" when TestRequest messages were processed correctly.
  • Fixed the issue when the ByteByffer.Add(char) method was encoding-dependent.

FIX Antenna .NET Core 1.1.0

FIX Antenna .NET Core 1.1.0 is released on .

New Features and Improvements

  • Expand
    titleThe ability to schedule start/stop tasks for FIX sessions was added.

    New The Scheduler functionality was implemented to schedule start and stop tasks for initiator/acceptor sessions, and for all incoming connections on the engine level.Please refer to the documentation for more details.

  • Expand
    titleThe ability to reset sequence numbers on first incoming Logon message was added.

    The resetSeqNumFromFirstLogon option property was implementedadded. It determines whether sequence numbers should be accepted from the incoming Logon message. This option allows avoiding to avoid sequence numbers handshake when it is not required.

    Please refer to the documentation for more details.

Fixed Bugs

  • Fixed the issue when FIX Antenna .NET Core crashed on receiving an incoming HTTP connection.

FIX Antenna .NET Core 1.0.2

FIX Antenna .NET Core 1.0.2 is released on

Source code and documentation are available on GitHub under an Apache 2.0 license.

Breaking changes

API of version 1.0 does is not compatible with versions 0.9.x versions.

  • All namespaces were reorganized and renamed with the 'Epam.' prefix.
  • Many methods converted to properties.
  • The number of binaries was reduced.

New Features and

...

Improvements

  • Expand
    titleNative support of QuickFIX-formatted dictionaries.

    Dictionaries in QuickFIX format can be used to start FIX

    sessions Assigning an individual

    sessions.

  • Expand
    titleAbility to assign custom dictionary to a specific FIX session.
    An individual

    The custom dictionary can be assigned to a specific FIX session in the

    property

    fixengine.properties file

    Using environment

  • Expand
    titleEnvironment variables for session configuration.

    Configuration parameters now can be defined

    in

    using environment variables.

    Environment variables have the highest priority

     

  • Expand
    titleTag generation tool.

    The tag generation tool generates a set of FIX-dictionary tags as constants inside a DLL file. Thus, the human-readable names of the tags and tag values can be used instead of their numbers and numeric values

    (for standard values)

    .

  • Expand
    titleAsynchronous session connection.

    FA .NET Core API now supports

    the

    asynchronous session connection.

     

    The ConnectAsync()

     the method was introduced to the IFixSession interface

    method is added to the IFixSession interface.

FIX Antenna .NET Core 0.9.4

FIX Antenna .NET Core 0.9.4 is released on .

New Features and Improvements

  • TLS Support has been implemented

    For samples and details, refer to the FA .NET Core Programmer's Guide - TLS Support
    Expand
    titleTLS support.

    FIX Antenna .NET Core now supports TLS.

    The implementation uses

    the 

    the System.Net.Security.SslStream class, as well as other types from System.Net.SecuritySystem.Security.AuthenticationSystem.Security.Cryptography.X509Certificates

     namespaces

    namespaces.


    Support of different certificate types depends only on the X509Certificate2 class

    .Added configuration option seqNumLength

    .

    Please refer to the FA .NET Core Programmer's Guide - TLS Support page for samples and more details.

  • Expand
    titleThe new seqNumLength property to configure the minimal length of SeqNum
    fields
    If configured length is more than
    field.

    The new optional seqNumLength property was added to define the minimal length of the MsgSeqNum(34) field.

    If the specified length exceeds the actual length, the

    value

    actual length will be prepended with leading zeroes.

    For the details see FA .NET Core Programmer's Guide - Configuration.
  • Added API method
    Expand
    titleThe new FixMessage.TryGetLongByIndex(int index, out long value) API method.

    The

    method returns true if a tag exists and a value could

    new FixMessage.TryGetLongByIndex API method returns 'true' when the specified tag exists in the message and its value can be parsed as long,

    and returns

    the parsed value

    as 

    is returned as out long value.

    If no tag exists or a value cannot be parsed as long, it returns false

FIX Antenna .NET Core 0.9.3

FIX Antenna .NET Core 0.9.3 is released on

New Features and Improvements

...

  • Expand
    titleMasked passwords in

...

  • session and application log files.

    The new maskedTags configuration property is added. It allows users to specify tags whose values must be masked with asterisks in the session and application log files.

...

  • Masking is

...

  • required to obfuscate sensitive information

...

  • .

...

  • Session logins are not obfuscated by default, but this option can be configured.

    The

...

  • '<masked value>

...

  • ' placeholder from any 'Password=<masked value>

...

  • ' text block will be masked with three asterisks in the application logs.

...

When a message in the application log includes a FIX message, the Engine obfuscates sensitive field values in the FIX message with the corresponding number of asterisks.

Make hints with a description of public methods/parameters visible for FA .NET Core

Developer gets information about public properties and methods while working with FIX Antenna .NET Core in Visual Studio:

Image Removed

Include runClientRoundTripLatencyBM and runServerRoundTripLatencyBM samples to the package

...

  • Expand
    titleHints for public API methods and parameters.

    FIX Antenna .NET Core displays hints for all public properties and API methods while working in Visual Studio:

    Image Added
  • Expand
    titleTwo new runClientRoundTripLatencyBM and runServerRoundTripLatencyBM samples to measure FA .NET Core performance.

    The new runClientRoundTripLatencyBM and runServerRoundTripLatencyBM samples are added to the package to measure FA .NET Core performance.

    These samples are located in the following folders accordingly: 

    • \Examples\Latency\Sender
    • \Examples\Latency\Server

How to measure FA .NET Core performance using the roundtrip latency benchmark samples

...


  • Expand
    titleCompatibility with the Log Replicator tool.

    FIX log index files from the FileSystemStorageFactory and MmfStorageFactory are now compatible with the Log

...

  • Replicator tool.

Fixed Bugs

  • Fixed the issue when FIX Antenna .Net Core sends SendingTime NET Core didn't send the SendingTime(52) tag in the message body for the Sequence Reset(35=4) message.
  • Fixed the issue when the MmfStorageFactory could not initialize the index file after the application restart in rare conditionswhen FIX Antenna .NET Core was restarted.

FIX Antenna .NET Core 0.9.2

FIX Antenna .NET Core 0.9.2 is released on

FIX Antenna™ Antenna .NET Core 0.9.2 brings compatibility is now compatible with the latest version of .NET Framework - 4.8 .The Engine was tested under NET framework version. Testing was performed on .NET Core 3.1 and under .NET Framework 4.8 and is intended to be used under these platforms.
The Engine itself is based on .NET Standard 2.0 and shares the same set of features under both platforms.

...

platform versions.

Info

The 'obj' and 'build' folders inside must be manually cleaned in the sample application's folder in case it is needed if there is a need to sequentially run the same sample for on a different target platform (for example, EchoServer for .NET Core after .NET Framework 4.8)

New Features and Improvements

  • Optimized memory allocation on message receiving.
  • Added ability Ability to choose the IP protocol version between IPv4 or IPv6. Dual mode is used by default.

    InfoPlease note: IPv4 should be specified for OpenOnload

Fixed Bugs

  • FixServer does not Fixed the issue when FixServer didn't shut down on calling the Stop() function in case when FixSessionManager was not explicitly stopped.

FIX

...

Antenna .NET Core 0.9.0

FIX Antenna™ .NET Core is a high-performance and low-latency .NET FIX Engine.

The engine is based on .NET Standard 2.0 and is compatible with any platform that supports .NET Standard 2.0 and further.

...

One of the key benefits of using .NET Standard and .NET Core is the ability to use Engine under different OS: Windows, Linux, Mac.

Requirements & Compatibility

  1. Libraries compatibility: any OS with a .NET platform which that supports .NET Standard 2.0 and further (.NET Core is preferable).
  2. Samples compatibility: any OS with installed .NET Core 3.1 and further.
  3. Samples and libraries were tested with .NET Core under Windows 10 and Linux Ubuntu 16.04.

FIX Engine

  1. Supports FIX 4.0 - FIX 4.4,  FIX FIX 5.0,  FIX FIX 5.0 SP1,  FIX FIX 5.0 SP2.
  2. Supports all FIX message types (pre-trade, trade, post-trade, market data, etc.).
  3. Customizable FIX protocol with user-defined tags and message types.
  4. Sequence numbers management.
  5. Microseconds in FIX tags (MIFID II).
  6. Smart resend request handling.
  7. Validation against FIX dictionaries.
  8. Unregistered acceptors handling.
  9. Standard FIX routing based on DeliverTo and OnBehalfOf fields.
  10. Store messages while disconnected.
  11. Switch to the backup connection.
  12. Round-robin reconnect option robin reconnects option to multiple backup destinations for an initiator session.
  13. Administrative Plugin for Fix Antenna.

Sessions Processing

  1. Session Qualifiers
  2. Multiple FIX sessions
  3. Initiator/Acceptor Sessions
  4. Auto-reconnect Session
  5. Transient Sessions
  6. Restore state after failure (Persistent Session)
  7. Pluggable session level

Storage

  1. Supported Storage Types:
    1. Null storage
    2. In-memory storage
    3. Persistent storage
    4. Persistent Memory Mapped based storage
  2. Storage management (get a message by seq. num, get creation time)

Performance Tuning

  1. Ability to enable or disable Nagle's algorithm to minimize latency or maximize throughput
  2. Ability to manipulate the internal outgoing queue size to get maximum throughput (process messages in batch) or lower latency (minimal time in queue)
  3. Ability to use different levels of message validation to balance between reasonable correctness and good performance:
    1. Well formedness validation
    2. Validation of allowed message fields
    3. Validation of required message fields
    4. Validation of message fields order
    5. Validation of duplicated message fields
    6. Validation of field values according to defined data types
    7. Validation of repeating group fields
    8. Conditionally required fields
  4. Ability to choose the sending mode. Synchronous sending gives lower latency, but asynchronous is preferable for getting a better throughput
  5. Ability to configure CPU affinity to enable the binding and unbinding of a thread to a CPU, so that the thread will execute only on the designated CPU rather than on any CPU
  6. Setting send and receive socket buffer sizes for TCP transport options

Configuration

  1. Supports configuration in properties file format
  2. Ability to configure default behavior and custom sessions in the same configuration file

Monitoring and administration

  1. Proprietary built-in remote monitoring and administrative interface for sessions monitoring and management
  2. Public API to override and/or extend existing administrative instructions
  3. Rich monitoring and administration GUI (FIXICC) out of the box

Message composition API

  1. Provides the following functionality:
    1. Creating a message from a raw FIX string (parse)
    2. Serializing a FIX object message to a raw FIX string
    3. Adding, removing, modifying FIX fields, and repeating groups
    4. The ability of internal pooling to reduce memory allocations
    5. FIX flat message model - generic model to work with the abstract FIXMessage class via fields and groups getters and setters, which gives the highest performance
  2. RG API - API for working with repeating groups. Similar to FIX flat message model but allows to work with structures
  3. Prepared messages - message template for the faster sending the messages with the same structure but with different values
  4. Efficient getters and setters for working with values as with primitive type to reduce garbage production

Security

  1. Logon Customization
  2. Standard FIX authorization utilizing username and password fields in FIX Logon message
  3. Strategies for accepting incoming sessions:
    1. Auto-accept incoming sessions (to simplify development and testing)
    2. Auto-decline non-pre-configured sessions
  4. IP range based whitelisting for incoming connections
  5. CME Secure Logon support

Options

  1. Option "disconnectOnLogonHeartbeatMismatch"
  2. "resetThreshold" configuration option (handling of counterparties that ignores sequence reset and continues to send old sequence numbers)
  3. Option "resetQueueOnLowSequence"

Services

  1. Licensing system
  2. Logging to text files
  3. Logging to the socket (Splunk) via NLog
  4. ASCII codes in FIX logs file names
  5. Configuration of session parameters from .XML

Packaging

  1. A zip archive package is provided
  2. Sample EchoServer
  3. Sample Connect to gateway
  4. User’s guide
  5. Reference Manual (with a description of all classes and methods)

Safety

  1. Listen port management (Listen port per session)