Versions Compared

Key

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

...

Table of Contents
maxLevel2

...

Table of Contents
maxLevel2


Note

FIX Antenna ANSI C is discontinued starting version 2.18.1.

FIX Antenna 2.31.0

FIX Antenna 2.31.0 is released on .

New Features and Improvements

  • Expand
    titleBuilt-in WebUI for FIX Antenna-based applications.

    FIX Antenna C++ now provides WebUI for FIX session monitoring and runtime control. Monitoring WebUI is implemented as a separate shared library. FIX Antenna-based application must be linked to this library to use monitoring WebUI.

  • Expand
    titleThe ability to configure a session or a group of settings in a separate property file.

    FIX Antenna C++ now provides the ability to configure each session or group of settings (e.g., validation) in separate properties files. The multiple-level nesting is supported.

    To use this feature the optional IncludeProperties parameter must be specified with the list of paths to the auxiliary properties files to be included in the configuration file.

  • Expand
    titleThe ability to throttle incoming messages.

    FIX Antenna C++ now provides the ability to configure a throttler to control incoming messages' speed.

  • Expand
    titleCreation of the new log directory for the sessions logs at process start.

    FIX Antenna C++ now tries to create a new log directory for the session if the LogDirectory property was specified with the non-existent path.

API Changes

Documentation Changes

Other Changes

Fixed Bugs

  • 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

  • Expand
    titleIntroduced additional affinity properties

    Introduced additional affinity properties for some previously not covered by affinity masks mask threads, and improved thread naming.

    Please refer to The List of FIX Antenna spawned threads page for more details.

  • Expand
    titleChanged the strategy for handling validation and parsing errors
    • The strategy for handling validation errors as well as not fatal parsing errors is improved.
    • The fatal parsing errors that prevent the work from proceeding are reported immediately when occur. 

    Please refer to to the Explanation of log messages about validation and parsing errors page for more details.

  • Expand
    titleImproved configurable validation of tag numbers

    A range of user-defined fields now can be configured via the MaxTagNumberForValidation property of the engine.properties file.

  • Expand
    titleImplemented listen port configuration for administrative FIX session
    • Added the ability to set a specific port for the administrative session.
    • Supported SSL connection. 

    Please refer to Configure Administrative sessions with dedicated ports page for more details.

  • Expand
    titleNew Callback OnOutgoingSessionLevelRejectEvent was implemented

    When the FIX Antenna C++ sent a session-level Reject message (MsgType=3) then the <EngineEngine:Application::onOutgoingSessionLevelRejectEvent>onOutgoingSessionLevelRejectEvent method is called.

    Please refer to to the Element OnOutgoingSessionLevelRejectEvent page for more details.

  • Expand
    titleImplemented support of multiple hosts by administrative session SourceIPAddress parameter
  • Expand
    title.net wrapper version was moved to Framework 4.8
    • FIXAntenna .net was built against Framework 4.8
    • FIXAntenna_net4.0.dll and FIXAntenna_net4.0.xml in the package were renamed to FIXAntenna_net4.8.dll and FIXAntenna_net4.8.xml
  • Expand
    titleUpdated the contact info in license error messages

    Only the email (sales@b2bitssales@b2bits.com) is mentioned as the contact information in case of license issues (e.g. expired license, invalid license).

  • Expand
    titleFixAntenna uses OpenSSL v. 1.1.1h and supports TLS v. 1.3.

    The application uses OpenSSL v. 1.1.1h and supports TLS v. 1.3 (the SSLProtocols property).

...

  • Expand
    titleImplemented logging of notification about parameter СonfirmingLogonStrategy=RejectLogout

    When the value of parameter ConfirmingLogonStrategy parameter ConfirmingLogonStrategy parameter is set to RejectLogout, there is a notification about this in the logs with INFO level: "Option ConfirmingLogonStrategy is set to RejectLogout. The Logout messages received in response to Logon will be treated as an unexpected behavior". 

    Please refer to to the ConfirmingLogonStrategy page for more details.

  • Expand
    titleImproved logging of parameters of primary and backup connections of FIX session
    • If the value of the Debug.LogSessionExtraParameters property is false, then only general session parameters of primary and backup connections (Host, Port, HBI) are printed to the log.
    • If the value of the Debug.LogSessionExtraParameters property is true, then general and extra session parameters of primary and backup connections are printed to the log.
    • Backup session parameters are printed to the log when the function connect is called.
    • If the value of the Debug.LogSessionExtraParameters property is true and the primary and backup extra parameters are the same, then the line "The backup session has the same parameters as the primary session"  is line is printed to the log.

API changes

  • The old spelling is removed from the API: The validation option 'verifyReperatingGroupBounds' is no longer available via API, 'the verifyRepeatingGroupBounds ' should be used instead. The getVerifyReperatingGroupBounds method 'getVerifyReperatingGroupBounds' is no longer available via API, 'the getVerifyRepeatingGroupBounds'should be used instead.

...

  • 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 parser logic ignored issue when the VerifyReperatingGroupBounds parameter 'VerifyReperatingGroupBounds' was ignored in some cases. Added  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 incorrect 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 .

The most important features of this release are the dedicated listen ports for acceptor sessions and the ability to use QuickFIX formatted dictionaries, see below. 

Dedicated listen ports allow the user to restrict an incoming connection to one dedicated port (regardless of whether it is secured or not) for a session via session via the engine properties file, and  and to a number of secured or unsecured ports within the API.

QuickFIX formatted dictionaries can now be used the same way as FixAntenna formatted dictionaries.

Starting with this release, build configurations are reduced to Visual Studio 2015 x64, RedHat/Centos 7 gcc4.8, Redhat/Centos 7 gcc5.2, Ubuntu gcc6.1

Features and improvementsImprovements

  • Expand
    titleAdd The ability to load FIX dictionaries in QuickFIX format.

    FixAntenna C++ now supports QuickFix dictionaries natively. See details: 

    Please refer to the How to manage a list of dictionaries in FIXAntenna-based applications page.

  • Expand
    titleAdd the possibility to support Support of a custom symbol instead of SOH.

    Added a the new parameter for a session: tagsDelimiter tagsDelimiter session parameter.
    You can configure this parameter through SessionExtraParameters and through the engine.properties file. In order to set the parameter through the config file, you can use a symbol or a hex-code, for example:

    • |
    • ^
    • 0xAD
    • 0xF5

    Make sure you use an allowed value. Check the table. You can also call the static function FAProperties::checkTagsDelimiterValue.
    The default value for tagsDelimiter parameter is 0x01 (SOH).

  • Expand
    titleDedicated listen port for FIX acceptor sessions

    The listening ports that can be defined per acceptor session. The port is opened for listening only when the session is ready to accept connection. It's possible to have several sessions on the same port as long as SSL configurations match.

  • Expand
    titleAdd an option 'ResetSeqNumFromFirstLogon' to reset sequence numbers with values taken from the first logon message

    A new option ResetSeqNumFromFirstLogon was added that allows the engine to handle sequence numbers at logon without Resend Requests.

    It can be configured with its own cron-based schedule or using an existing session schedule.

  • Expand
    titleAdd an option 'ResetSeqNumOnNonGracefulTermination' to reset sequence numbers upon non-graceful termination

    A new property, ResetSeqNumOnNonGracefulTermination, was added that allows the session to reset local sequences to 1/1 upon a connection error or a failed Logon/Logout time frame check.

  • Expand
    titleAdd an option 'ConfirmingLogonStrategy' to control behavior when a logout is received instead of a logon
    Added the ConfirmingLogonStrategy session parameter. The list of strategies can be found here.
  • Expand
    titleSet the default value for DuplicateResendRequestLimit to 2
    Set the recommended value of DuplicateResendRequestLimit = 2 to default in engine.properties . This option allows the FIX Engine to ignore duplicate resend request and respond to multiple similar resend request messages only once. See DuplicateResendRequestLimit for details.
  • Expand
    titleConnectToGateway sample now supports scheduling
    The ConnectToGateway sample was updated to support session scheduling with sequence reset and custom logons.
  • Expand
    titleFIX Client Simulator sample updated with new features from FIX Client Simulator release 2.28.0

    The details can be found there FIX Client Simulator v.2.28.0 release notes

  • Expand
    title[.NET] Add the possibility to turn off sending back messages in EchoServer

    The echo server sample now has the ability to disable echo mode and just work as a FIX receiver.

    This can be configured using the EchoMode property in the engine.properties file.

    EchoMode is set to 'true' by default.

  • Expand
    titleUpgrade the FA .NET EchoServer sample
    The EnableAutoSessionCreation property was added to the .net EchoServer sample that enables starting pre-configured sessions automatically at start-up.
  • Expand
    titleSupport schedule assignment in the EchoServer sample
    EchoServer now supports starting/stopping sessions by schedule. Initiator sessions are supported too.

...

  • Expand
    titleIncorrect number of next expected SeqNum when using Queue Strategy in FA

    Fixed the incorrect number of next expected SeqNum in logs when using Queue Strategy.

  • Expand
    titleTimeline file is missing in the package

    Added missing date_time_zonespec.csv to the FixAntenna C++ package.

  • Expand
    titleFIXT11 session was not initialized due to last message parsing error

    When using the FIXT1.1 protocol, a correct version of the session protocol is now used to validate storage on startup. This prevents occasional failures upon session initialization if the last message in the *.out storage does not contain the ApplVerID(1128) tag.

  • Expand
    titleA session stops and restarts if it is trying to send a session-level reject while the 373 tag does not have all the values in the dictionary

    Fixed a rare case when a session tries to reconnect after attempting to send a Session Level Reject(3) message that uses one of the following tags: 371, 372, 373, 1130, 1406, 1131, or contains a value that is not presented in the dictionary, and validation is enabled.

  • Expand
    titleEchoServer: user can establish a session during a dayoff period

    EchoServer has been completely reworked to provide actual examples of API usage. EchoServer now has an option to disable automatic startup for sessions with configured schedules. If the property "StartSessionsWithSchedule" set to "true", configured sessions will be started on sample execution regardless of the configured schedule. If the property "StartSessionsWithSchedule" is set to "false" or not set at all, configured sessions will be started on sample execution only if a session has no configured schedule.

  • Expand
    titleFA does not close a session if tag 789 in an incoming logon is higher than expected

    Fixed the case when a FIX session does not react correctly when the NextExpectedSeqNum(789) tag in an incoming Logon message has a value higher than the sequence number that is next to be assigned. Now, a Logout message will be sent in a scenario like this, as described in the FIX specification.

  • Expand
    titleIncorrect count of the repeating group in the error message if the count of entry is zero

    Fixed the detection of the invalid number of entries in repeating groups. This occurs when there is no entry at all.

  • Expand
    titleThe property AllowZeroNumInGroup doesn't work in FA
    Fixed the AllowZeroNumInGroup property. It allows zero-sized repeating groups in incoming messages when set to true.
  • Expand
    titleRename "fix.crush.dmp" to "fix.crash.dmp"
    Renamed the crash dump file from fix.crush.dmp to fix.crash.dmp for the Win32 platform.

...

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.

...

  • Scheduler component is implemented. 
  • SSLCACertificate is mandatory if peer certificate validation is enabled.
  • Improve logging of errors for unhandled exceptions generating business rejects during processing the message.
  • Parameter Session.Default.SocketTcpMaxSeg is added. It configures the TCP_MAXSEG parameter of the session's TCP/IP connection. It is applicable to initiator sessions only,
  • Added callbacks onAfterMessageIsParsed and onBeforeMessageIsSerialized to FA.NET
  • Improved FIX message parser scalability in a multi-threaded environment.
  • Improved performance and reduced response time of the Session::put method in aggressive_send mode in case if the message can't be sent on spot(engine overload, broken connection, etc).
  • CPU resources consumption is optimized while receiving in even mode( using threads pool) that causes response time decreasing on message path from input to Session::process method.
  • Session parameter "Role" is case insensitive in engine.properties now,
  • New timestamp formats %date{FIXus}, %date{FIXns} %date{ISO8601us}, %date{ISO8601ns} with micro and nano precisions are added for application log output. see: Format of log entries in the log file
  • FIX Antenna accepts Hexadecimal values as a CPU affinity mask.

  • Affinity mask for CPU cores can be specified as comma-separated, semicolon-separated lists or as a range see details (Core binding and affinity mask usage in FIX Antenna C++ products).

    Info

    NOTE: The curly braces should be used in case of a single number configuration in order to keep backward compatibility. By default affinity parameter values are treated as affinity mask in decimal format. It the value is set in curly braces than cores number is used instead of the mask.

  • Improve description of AggressiveReceiveDelay parameter
  • EchoServer sample is redesigned to utilize new Engine::SessionsManager::onSessionTerminated callback.

...

  • (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

Documentation

Extension Packs

Critical bugs and fixes

...

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

New Features and improvements

...


Critical bugs and fixes

  • MIT Adapter:  issue with multiple replays in LSE adapter 

...

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

New Features and improvements

...

...

  • Logging category has been changed for a number of cases:

    Message

    Old category

    New category

    Session <sender, target> : Error during processing Logon message from 127.0.0.1:62358: Session is not waiting for connect: current state is <XXX>
    ERRORWARN

Other 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

...

  • Timestamps with increased precision can be validated in incoming messages (in UTCTimestamp, UTCTimeOnly, TZTimestamp, TZTimeOnly)
  • Timestamps in SendingTime (52), OrigSendingTime (122) are filled with configurable precision (per-session configurable property)

  • Public API is extended to operate timestamps with additional precision

...

  • Timestamps with increased precision can be validated in incoming messages (in UTCTimestamp, UTCTimeOnly, TZTimestamp, TZTimeOnly)
  • Timestamps in SendingTime (52), OrigSendingTime (122) are filled with configurable precision (per-session configurable property)
  • Public API is extended to operate timestamps with additional precision

...

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.

...

  • Performance of massive resend requests has been improved for the case when persistent storage type is used (1 million messages is resent up to 180 times faster).

MOEX Spectra Market Data Adapter:

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

Other improvements:

...

  • Сrash during receiving some invalid FIX messages

Documentation

FIX Antenna .NET v2.16.0 (r78402)

...

  • Extended options for "Reset sequence numbers" checkbox in Simple Client have been added

FIX Antenna 2.15.1

...

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

FIX Antenna 2.15.0

November 3, 2015

...

  • Support of the updated MOEX FAST feeds for Derivatives (SPECTRA) v.1.2 was added. Note: The new version of Spectra adapter is incompatible with the previous version, more info in the article

  • Support of new low latency socket option available in RHEL 7.1 was added to reduce the latency of message receiving

  • MOEX FIX/FAST Market Data Adaptor functionality was extended with support of Instrument Status Feed (ISF). New sample allowing subscription to ISF feed is now available in the package
  • Enabled support of TLS v1.1 and TLS v1.2 protocols
  • New session parameter MaskedTags was added for masking Username and Password values in in/out log files for the messages types A, BE, BF, n

...

  • 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 

...

FIX Antenna .NET v2.15.0 (r77262)

...

  • 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

...

  • Separated port for admin session in FIX Antenna - administrative sessions will be accepted on this port only
  • MOEX MD Adapter can apply partial snapshot

Documentation

...

  • The API for assigning CPU affinity masks for working threads has been introduced

Documentation

Bugfixes

  • Broken symlink libV12.so in FIX Antenna packages (Linux)
  • MICEX Market Data Adapter: TCP Replay request is rejected with the error "Requested range is invalid"
  • Typos and broken links in online documentation has been fixed
  • Cyclic switch to backup/primary connection has been fixed
  • Sending reject for garbled message has been fixed
  • MICEX Market Data Adapter: onRecoveryStarted/onRecoveryStopped are called in the wrong order
  • FIX Session latency degradation in aggressive mode against 2.12 version
  • SpectraClient and FortsClient: "_10" suffixes in binaries filenames has been removed
  • Throughput/Sender: unexpected error has been fixed
  • Throughput: bad allocation in case 3+ sessions has been fixed
  • Fast_QuickStart: segmentation fault has been fixed
  • MDP 3.0 Sample: Red Hat 7 is supported now

...

  • SimpleClient: SSL support
  • SimpleClient: in case there is only one session connected, all messages will be sent to it by default

Documentation

...

New features and improvements

  • SSL support
  • Packaging: FastCodec has been packaged into main FIX Antenna package. We will not release a separate package for FastCodec any more. 
  • New OS support:

    • CentOS/RedHat 7
  • New compilers support:

    • Libraries for MS Visual Studio 2013 (x32&x64) in Windows package
    • Libraries for gcc48 and gcc49 (x32&x64) in Linux CentOS7 package
  • New Market Data Adaptors:
  • Myricom DBL emulator

  • FIX Sessions:

    • Session::put now can handle multiple FIX messages at a time
    • Compatibility with FixAntenna 2.8 dictionaries
  • FAST Sessions:
    • "bool->string" conversion is now configurable
  • New API have been added:

...

...

...

  • Session Qualifier has been added to provide the possibility to create several sessions with the same Sender/TargetComID pairs.
  • New sockets dispatcher on Linux to minimize latency spikes in messages sending/receiving. (see Threads configuration::Linux) documentation for details. (C++ only).
  • Performance of PreparedMessage the class has been improved.
  • New session parameters:  
    • UseBlockingSockets. If true, the session will use blocking I/O. This mode is useful for OpenOnload and is enabled if the aggressive mode is ON. Engine::SessionExtraParameters::aggressiveReceiveDelay_ is used as a timeout parameter.
    • LogonMessageSessionQualifierTag. Defines field which would be used by Dispatcher to bind incoming connection with registered Acceptor session.
    • EnableFastScp. Defines either FAST SCP should be used by FIX-over-FAST TCP session.
  • New Engine parameters
    • EnableDnsEntrySpoofingDetection. When it's set to true there is an enabled backward resolve-based DNS entry spoofing detection mechanism in DNS-related functions.
    • Dispatcher.SendWorkersCount. Defines the number of workers to handle outgoing messages.
    • Dispatcher.RecvWorkersCount. Defines the number of workers to handle incoming messages.
    • Dispatcher.SendWorkersTimeout. Defines the number of milliseconds to wait for the readiness of the socket to send data.
    • Dispatcher.RecvWorkersTimeout. Defines the number of milliseconds to wait for the readiness of the socket to receive data.
    • Validation.AdditionalFieldsName parameter is deprecated. Please use the DictionariesFileslist parameter instead.
  • New API (only in C++):
  • New config-file parameters:
    • nicConfig for MOEX MICEX adapter
  • Market Data Adapters:
    • Bovespa:
      • BovespaApplicationListener class has been published in B2BITS_BovespaApplicationListeners.h (C++ only)
    • CME
      • templates.xml file has been updated according to the latest spec
    • MICEX
      • The issue with NIC teaming has been fixed
    • The description for RR_PACKET_ORDER and RR_OVERFLOW_REASON enumeration values for Bovespa, CQG, and CME Market Data Adaptors have been added (C++ only).
  • Added B2B_LIKELY and B2B_UNLIKELY macros. Macros allow programmers to mark the most possible hive of the if/else statement to let the compiler improve branch prediction (C++ only).

...