Versions Compared

Key

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

Table of Contents
maxLevel2

...

Note

FIX Antenna ANSI C is discontinued starting version 2.18.1.

FIX Antenna 2.32.1

FIX Antenna 2.32.1 is released on .

New Features and Improvements

  • FIX Antenna C++ now supports custom values in the Tag 8-BeginString field. This feature allows customers to utilize specific, non-standard values for BeginString, catering to their unique needs, e.g., integrate with trading partners who use custom BeginString values or comply with exchange requirements. Please refer to the How to Use a Custom Value for Tag 8-BeginString in FIX Antenna C++ user guide for more details.

FIX Antenna 2.32.0

FIX Antenna 2.32.0 is released on  .

...

  • Fixed bug when FIX Antenna C++ can handle incorrectly messages with XML field length bigger than actual data size.
  • Fixed the issue when events from the old schedule could occur unexpectedly after the Scheduler replacement.
  • Send logout in case a message with the wrong BeginString is received during the session.
  • Fixed bug when there was no heartbeat interval reset on an invalid message.
  • Fixed the issue when the engine didn't populate session level messages with all required tags specified by the dictionary.
  • Fixed random affinity assignment of FIX timer and DBL threads if no explicit affinity was defined.

FIX Antenna 2.31.0

FIX Antenna 2.31.0 is released on .

...

  • Fixed the issue when the value of the TargetLocationID was not applied for the session.
  • Fixed the issue when FIX Antenna C++ generated Reject with incorrect SessionRejectReason for FIX messages containing tag value(s) with <SOH> symbol.
  • Fixed the issue when FIX Antenna C++ generated Reject with incorrect SessionRejectReason for FIX messages containing undefined tag(s).
  • Fixed the issue when FIX Antenna C++ generated Reject with incorrect SessionRejectReason for FIX messages containing out-of-boundaries tag value(s).
  • Fixed the issue when FIX Antenna C++ generated Reject with an unclear description in 58 tag for FIX messages containing repeating group(s) with incorrect NumInGroup count.
  • Fixed the issue when FIX Antenna C++ could not be started when the LogDirectory property was specified with the Directory Junction link.
  • Fixed issue when the createSession() API function ignored the value of the ParserVersion property set in the engine.properties file for the session and default session.
  • Fixed the issue when the Session::disconnectSync() API function call caused the application's admin thread to stop responding to any further admin commands.

FIX Antenna 2.30.1

FIX Antenna 2.30.1 is released on .

FIX Antenna 2.30.1 is a customer-demanded release providing backward compatible repeating groups parser.

FIX Antenna 2.30.0

FIX Antenna 2.30.0 is released on  .

...


  • Expand
    titleThrottling of outgoing messages was added.

    FIX Antenna C++ now provides the ability to configure a throttler to control the outgoing messages rate per time window.



  • Expand
    titleThe mechanism for handling insufficient disk space was added.

    FIX Antenna C++ now provides the ability to configure a mechanism for handling insufficient disk space. On session creation or switching to backup/primary connection, FIX Antenna C++ will automatically check free space on the disk and if its amount is less than the value of Persistents.MinDiskSpace property, then FIX Antenna C++ will not start a new session or will not switch to backup/primary connection. Also, FIX Antenna C++ will terminate the session if there is no free disk space left on the session's log device.



  • Expand
    titleThe ability to configure log storage directory for each FIX session was added.

    FIX Antenna C++ now provides the ability to specify different log storage directories for each FIX session via the LogDirectory property.  LogDirectory can also be specified for the backup connection of a particular session.



  • Expand
    titleFIX Antenna doesn't create (reuses) new log files if there are no business messages in the logs.

    FIX Antenna C++ now reuses the log file if there are no business messages in it.

    Please refer to the LogDirectory page for more details.



  • Expand
    title Improved PersistentMM storage load speed on FIX session start.

    The new method of maintaining the log files in the PersistentMM storage for FIX sessions was added. It can be configured via NewFeatures.EnableOptimizedPersistentMMIndex property.

    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.



  • Expand
    titleThe ability to load new FIX dictionaries in runtime was added.

    The FixEngine::loadProtocolFile method now returns a list of IDs and FIX versions of newly created dictionaries for later use in creating protocols and sessions.

    It is now possible to configure the maximum amount of parsers allowed in FIX Antenna C++ using the MaximumParsersAllowed parameter.



  • Expand
    titleThe new AGGRESSIVE_SEND_ASYNC socket operation priority mode was added.

    In this modeFIX Antenna C++ uses a dedicated thread for a session and 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 executing the session:put method and reduce the impact of slow consumers on the application by parallelizing the socket operations by default.

    The new properties were added: 



  • Expand
    titleFiltering of zero-sized repeating groups in outgoing FIX messages was implemented.

    This behavior can be configured via Validation.AllowZeroNumInGroup property.


Logging Improvements


  • Expand
    titleImproved logging of applied version of the parser.

    The applied parser is logged as a general parameter on session start-up in the following format:

    applied ParserVersion = [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...].

    Please refer to the ParserVersion page for more details.



  • Expand
    titleImproved logging on DEBUG and WARN levels.

    On the DEBUG level - The StorageCreationTime property was updated.

    On the WARN level - New log message storage was created.


FIX Protocol Changes


  • Expand
    titleThe 'FIXLatest' application version of FIX protocol was supported.
    • New value 10 = FIXLatest for 1128 and 1137 tags was added.
    • A new dictionary fixdiclatest.xml was introduced.
    • FIXT11 standard dictionary was updated to support the FIXLatest version.
    • The FIX Client Simulator sample was updated to support the FIXLatest application version.



  • Expand
    titleValidation of 1137 and 1408 tags in incoming Logon messages was added.
    • Support of the CstmApplVerID (1129) tag when serializing/parsing FIX messages was implemented to identify the FIX message dialect when the custom protocol dialect in the parser is used.
    • Support of the DefaultCstmApplVerID(1408) tag when serializing/parsing Logon messages was implemented to identify the default FIX message dialect when the custom protocol dialect is used for the FIX session.


API Changes

Other Changes

  • MOEX ASTS Market Data Adapter was decommissioned.
  • The obsolete DefaultApplicationProtocol property was removed.
  • Documentation in the FIX Antenna Python package was improved.
  • The CyclicSwitchBackupConnection parameter was renamed to EnableCyclicSwitchBackupConnection.
  • Removed deprecated property Monitoring.ListenPort from the FIX Antenna C++ headers.
  • The new MaximumParsersAllowed property was added.

Fixed Bugs

  • Fixed the issue with replacing the standard FIXT parser with a custom FIXT parser.
  • Fixed the issue with the unexpected SequenceReset(4) message when the 789 tag was present in the Logon message.
  • Fixed the issue when CRON expressions parser could not accept numbers starting from '0' such as '08' or '09'.
  • Fixed the issue when the Admin session was started with logs persistence enabled by default.

FIX Antenna 2.29.0

FIX Antenna 2.29.0 is released on

New features and improvements

...

  • Fixed the compatibility issue with scheduling the session events in FIXEdge and running the child process.

  • Fixed the bug due to which a session couldn't send a message during the Wait For Confirm Logout statement even when enableMessageRejecting = **false.

  • Fixed issue when FIX Antenna stops receiving messages after receiving a message with a seq number lower than expected.

  • Fixed the issue when FIX Antenna C++ and FIXEdge crashed on user-modified dictionaries.

  • Fixed the application crash when the tag 1128 is not set for SMH in the dictionary but the tag was present in a FIX message.
  • Fixed the possible infinite loop while handling the incorrect ResendRequest message.

  • Fixed the issue when FIXEdge didn't indicate the bound port for the session (Win specific). Removed usage of SO_REUSEADDR socket option on Windows to make behavior the same on Windows and Linux in case if listening port is already in use.
  • Fixed the issue when the VerifyReperatingGroupBounds parameter was ignored in some cases. The alias 'VerifyRepeatingGroupBounds' for the parameter 'VerifyReperatingGroupBounds'(spelling fix) was added. 

  • Fixed the issue when FIXEdge C++ wrote incorrect tag 8 in storage if the FIX protocol version is FIX5.0.

  • Fixed the issue when validation of repeating groups could not be disabled.
  • Fixed the issue when there was an incorrect SessionRejectReason when the tag position was not correct: 373=2 instead of 373=14.
  • Fixed the issue when the default engine properties file contained incorrect ForceReconnect property.

FIX Antenna 2.28.0

FIX Antenna 2.28.0 is released on .

...

FIX Antenna 2.27.1

FIX Antenna 2.27.1 is released on

The major features of this release are the Scheduler component and flexible affinity mask setup, see below. The scheduler component allows users to build and execute flexibly defined schedules and override actions execution if required, see the documentation

This is the last release that supports RHEL / Centos 6 and Visual Studio compilers prior to Visual Studio 2015. So, please be informed that RHEL 6 configurations along with Visual Studio prior to 2015 will be discontinued starting the next release. Windows configurations will be reduced to only one - Visual studio 2015 in particular since starting 2015 studio ABI  compatibility is maintained across compilers versions, So the library built with 2015 studio can be used with 2015/2017/2019. Linux configurations will be reduced to only three: RHEL 7 gcc4.8, RHEL 7 gcc5.2, Ubuntu gcc6.1


Breaking changes

  • (SD4906754) Port accepted the connection is passed to the public API method:

    Code Block
    languagecpp
    virtual bool onIncomingConnection( const FIXMessage& logonMsg, const IPAddr& remoteAddr, int remotePort, int localPort )


    B2BITS_Events.h:

    The following methods signatures have been changed:

    Code Block
    languagecpp
    titleB2BITS_Events.h
    NewIncomingConnection( const std::string& address, int port );
    NewIncomingConnectionError( const std::string& address, int port, const std::string& msg );
    SessionLogonError( const SessionId& sessionId, const std::string& address, int port, const std::string& aReason );
    SessionLogonWarning(const SessionId& sessionId, const std::string& address, int port, const std::string& aReason);
    SessionWasRejected( const SessionId& sessionId, const std::string& address, int port, const std::string& aReason );

    with

    Code Block
    languagecpp
    titleB2BITS_Events.h
    NewIncomingConnection( const std::string& remoreAddress, int remotePort, const std::string& localAddress, int localPort );
    NewIncomingConnectionError( const std::string& remoreAddress, int remotePort, const std::string& localAddress, int localPort, const std::string& msg );
    SessionLogonError( const SessionId& sessionId, const std::string& remoreAddress, int remotePort, const std::string& localAddress, int localPort, const std::string& aReason );
    SessionLogonWarning(const SessionId& sessionId, const std::string& remoreAddress, int remotePort, const std::string& localAddress, int localPort, const std::string& aReason);
    SessionWasRejected( const SessionId& sessionId, const std::string& remoreAddress, int remotePort, const std::string& localAddress, int localPort, const std::string& aReason );


    Info

    Since the methods signatures were changed, user's application modification is required.


  • Type MessageStorageType has been changed to class. So MessageStorageType can't be used as a key in 'switch' anymore. User should use 'if..else if ...' instead of 'switch'. User application may require minor changes.

...

  • (SD4906754) Extended logging of incoming connection event

    text has been changed:

    Previous message

    <severity> <timestamp> <thread> [Engine] - New incoming connection was detected (from <target ip>:<target port>).

    Current message

    <severity> <timestamp> <thread> [Engine] - New incoming connection was detected (from <target ip>:<target port> to <local ip>:<local port>).


  • Improved logging of errors for unhandled exceptions generating business rejects during processing the message.

    text has been changed:


    Previous message

    [ERROR] <timestamp> <thread> [Engine] - Session <session> : Exception in Application::process() - "<exception text>"

    Current message

    [ERROR] <timestamp> <thread> [Engine] - Session <DEF, ABC> : Exception in Application::process() - "The message 'New Order - Single' (D) with sequence number 4 can't be processed properly because it causes an exception '<exception text>' at the application level. A business level reject message (j) will be sent to the counterparty."


  • Improved text of FIX Dictionary load warnings

    text has been changed:


    Previous message

    [WARN] <timestamp> <thread> [Engine] - Found duplicate in c:\Downloads\FIX_Antenna_Cpp_2.25.1_274\samples\EchoServer\bin\.\../../../data/fixdic40.xml: / 6

    Current message

    [WARN] <timestamp> <thread> [Engine] - Found duplicated value = '6' for node 'fielddef' with attributes { name='TrdRegPublicationReason' tag='2670' type='int' } in the dictionary fixdic40.xml


  • Improved exception in the logs for loading dictionary failure

    text has been changed:


    Previous message

    [WARN] <timestamp> <thread> [Engine] - 

    Current message

    [ERROR] <timestamp> <thread> [Engine] - FixEngine::init: Cannot load message '<msg>' in the protocol '<version>'. Duplicated tag in the message is found. Possible reason is field used outside the block. Tag: <tag>


  • A WARN record is logged in case when affinity configuration can't be applied
  • FIX Antenna prints the resulted affinity configuration in the log.

...

  • (SD4016506) Fixed a bug when session keeps disconnected state for several minutes after disconnection.
  • ConnectToGateway sample segfaults on Linux if the target endpoint is not available.
  • Fixed a typo in the thread name: was 'dispacher', replaced with 'dispatcher'.
  • Fixed a bug when SSL Ciphers list can't be passed to SSLContextConfigurator.
  • Fixed a bug when additional dictionary adds repeating groups incorrectly if leading tag is already present in the message.
  • Fixed a bug when additional dictionary adds repeating groups incorrectly if leading tag of the nested group becomes starting tag of the parent group.
  • Session's storage files occupy unnecessary large space in certain cases.
  • Certificate path was passed into SSL context instance setup routine instead of ciphers list in some cases.
  • FIX Antenna postpones the creation of dedicated sending threads for aggressive send mode instead of creating them on session get connected.
  • EPMBFIXSUP-3642, An initiator doesn't reestablish connection after receiving logout.
  • Fixed incorrect session state transition to WaitForConfirmLogout causing delays on Engine shutdown if DelayedProcessing.MaxDeliveryTries property was configured.
  • Fixed a bug when SourceIPAddress parameter works incorrectly via administrative session


Connectivity updates

  • CME iLink DropCopy dictionaries includes all changes till 31th of December  2019
  • FIX 5.0 SP2 dictionary has been updated with 248-252 Extension Packs


Documentation

FIX Antenna 2.26.0

FIX Antenna 2.26.0 is released on

...

SSL support changes:

  • An initiator can use a certificate signed by counterparty's CA certificate for authentication
  • FIX Session configuring API improved to support loading SSL certificates of types : pfx files, .pem encoded files, .der - binary encoded files in ASN1 standard. SSL certificates with and without passwords are supported.
  • API was extended with the class SSLContextConfigurator for getting certificates and passwords from the user. 
  • API was extended with SSLContextConfiguratorConverter interface to serialize/deserialize class SSLContextConfigurator to/from string. If user uses custom SSLContextConfigurator implementation, user should implement SSLContextConfiguratorConverter in order to avoid information loss. 
  • SSLRequireClientCertificate property was replaced by SSLValidatePeerCertificate.
  • Settings SSL, SSLCertificatePassword and SSLPrivateKeyPassword were introduced.
  • SSLCheckPrivateKey property was removed. Correspondence between the key and certificate will be checked automatically. FIX Antenna does not establish session if the key doesn't correspond to the certificate. 

For more information see:

Fixed critical bugs

  • AGGRESSIVE* (see SocketOpPriority) SSL FIX session sometimes stops message sending for long time.
  • A  flag Q (for queued FIX messages, see OutOfSequenceMessagesStrategy) is not replicated in FIX logs replicator
  • Missing timestamps in session logs after corrupted storage recovery        

FIX Antenna C++/.NET Market Data Adapters:

will be removed from the package starting the next release.

Market Data Adapters will be delivered as a separate package to simplify the release process, speed up the delivery of updates including bug fixes, and improve its integration with custom code.

FIX Antenna 2.25.1

FIX Antenna 2.25.1 is released on .

...

...

FIX Antenna C++ samples:

  • MICEX_MD_Scanner sample has been decommissioned from FA package
  • Script for preparing sources and libraries has been added for Decorator sample (Linux only). Sample Decorator uses Societe Generale dictionary as an example. 
  • List of parameters passing to decorator-generator tool has been slightly changed: output dir for the headers has been added and transport layer dictionaries should be passed with -f flag, e.g.: 

    Code Block
    buildwin.bat vs100 x64 ..\..\headers ..\..\lib -s FIXT11 -a FIX50SP2 -f ..\..\data\fixdic50sp2.xml -f ..\..\data\fixdict11.xml


Logging improvements:

  • Logging due to SSL ciphers changes has been changed

engine.log

Previous message
[INFO]  <timestamp> [thread] [Engine] - Session <TargetCompID, SenderCompID> : Connecting to 127.0.0.1:9017 using SSL (SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2)
Current message
[INFO] <timestamp> [thread] [Engine] - Session <TargetCompID, SenderCompID> : session with 127.0.0.1:9017 was established using SSL (SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2) with ciphers configuration: AES+aRSA:AES+aECDH:AES+aECDSA:@STRENGTH









Critical bugs and fixes

  • Tag number of the repeating group is invisible in message details window in FIX Client Simulator
  • Replication tool is unable to be created and started as a service. 
  • Sequence numbers are processed incorrectly in certain cases when DeliverAppMessagesOutOfOrder=true 
  • ProhibitDuplicatedTags  is always enabled  in FIX Antenna C++/.NET for Repeating groups since 2.17
  • Log Replicator doesn't work with growing log files.

FIX Antenna 2.24.0

May, 18, 2018

...

 Protection from abnormal user behavior 

  • The property for limitation of number of incoming simultaneous connections that haven't sent logon message yet from one host has been added (no limitation by default). 

  • The property for limitation of connection time for an incoming connection that hasn't sent logon message yet has been added (no limitation by default).
  • The property for limitation of the maximum size of the buffer of incoming messages has been added (no limitation by default).
    Refer to How to configure TCP protection for more information

...

FIX Antenna C++/.NET v2.23.0 (r241)

New Features and improvements

...

Extension Packs

...

...

FIX Antenna C++/.NET v2.22.0 (r232)

New Features and improvements

...

FIX Antenna C++/.NET v2.21.0 (r221)

New Features and improvements

...

FIX Antenna C++ v2.20.2 (r214)

MOEX Spectra Market Data Adapter:

Fixed bugs:

  • SpectraClient Sample processes snapshots incorrectly.

FIX Antenna 2.20.1

July 7, 2017

...

New Features and Improvements

Extension Packs:

MOEX ASTS Market Data Adapter:

  • Access to tag LastUpdateTime (779) of Incremental Refresh (X) message is supported in user-level callbacks.
  • Source-specific multicast feeds is supported for Myricom DBL connectivity mode.

...

API improvements

Critical bugs and fixes

...

  • Decorator-generated code has linker issues on Windows platform.
  • Tag DeliverToCompID(128) should be populated with value of OnBehalfOfCompID(115) tag of original message in case of session-level reject.
  • Recovered orders log increments appears twice in user callbacks in MOEX ASTS Market Data Adapter.

FIX Antenna 2.18.1

February 22, 2017

FIX Antenna C++ v2.18.1 (r154)

New Features and Improvements 

MOEX Spectra Market Data Adapter:

  • Field SecurityId in messages Security DefinitionSecurity Status of streams FUT-INFO and OPT-INFO now contain instrument ID value, equal to that transmitted via the PLAZA II gateway.

 Critical bugs and fixes

The following bugs have been fixed:

FIX Antenna 2.18.0

February 20, 2017

 FIX Antenna C/C++ v2.18.0 (r149)

New Features and Improvements

MOEX Spectra Market Data Adapter:

 MOEX ASTS Market Data Adapter:

...

  • Ability to utilize environment variables in configuration files has been added.

Please see How to configure properties with environment variables article for more details. 

...

  • Fixdic50sp2ep.xml dictionary works incorrectly.
  • Rounding works incorrectly for very large double price values.
  • FIX Engine works incorrectly in case of logs moving.
  • Memory leak for transient storage type occurs in the case of non-gracefully terminated session.
  • Asynchronous connection for Initiator doesn't work in some cases.

FIX Antenna 2.17.3

 December 20, 2016

 FIX Antenna C/C++ v2.17.3 (r121)

New Features and Improvements

MOEX Spectra Market Data Adapter:

  • Encoding format for SecurityID field for new order log feed has been changed.

Protection:

  • Compile- and run-time checks to detect buffer overflows (FORTYFY_SOURCE option of gcc compiler) had been enabled. 

Other improvements:

  • Affinity mask support in FIXAntenna has been extended for the systems with 64 cores.

Critical bugs and fixes

 The following bugs have been fixed:

  • Adding a user with a subnet range of IP's within the "Source IP Address" field under the "Security" tab doesn't work in FIXICC.

FIX Antenna 2.17.2

November 25, 2016

FIX Antenna C/C++ v2.17.2 (r108)

Extension Packs:

Other improvements:

  • FIX session properties HiddenLogonCredentials and MaskedTags have been added to Admin protocol.
  • FIX Engine now detects and recovers broken storage on startup.
  • Boost symbols have been hidden in Linux .so to avoid compatibility issues.

MOEX Market Data Adapters:

  • Dictionary and FAST template have been updated for Spectra FAST gate (supported from version 1.2.3).

FIXAntenna Samples:

...

  • FIXAntenna won't start when disk space runs out.
  • DBL session can't be destroyed in some cases.
  • FIX connection reject reason is not logged in some cases.
  • Incoming message is considered as garbled in specific conditions.
  • MOEX ASTS Market Data Adapter opens port on only one interface in DBL mode. 
  • Incorrect path to dictionary in BatsClient configuration file.
  • MOEX Spectra Market Data Adapter can't read initial snapshot.

...

  • Dictionary and FAST template has been updated for Spectra FAST gate (supported from version 1.2.3).

Other improvements:

...

FIX Antenna C/C++ v2.15.1 (r78090), FIX Antenna .NET v2.15.1 (r74001)

FIX Antenna 2.15.0

November 3, 2015

...

  • The properties in engine.properties file (SSLCertificate = cert.pem; SSLCACertificate = certCA.pem) uses EngineRoot as base if relative path is used

  • CQG MD Adaptor: converting CQG FAST 'Y'/'N' values to boolean was fixed
  • Reconnection of FIX Initiator session is allowed if SSL is used
  • Obsolete Currency tag(15) value for Turkish Lira in FIX dictionaries was excluded
  • 1128 tag will be placed to the position right after the tag 35 in case of parsing FAST message to Fix Message 

...

  • Session rejects (35=3) are visible in EventViewer
  • Added an ability to send FIX 5.0+ messages via simple client even if tag1128 is absent 

FIX Antenna 2.14.1

July 3, 2015

...