FIX Antenna C/C++/.NET Release Notes


FIX Antenna ANSI C is discontinued starting version 2.18.1.

FIX Antenna 2.33.0

Starting with the FIX Antenna 2.33.0 release, only Microsoft Visual C++ Redistributable version 14.40.33810.0 and later are supported.

Please note that FIX Antenna 2.33.0 is the final release to support CentOS 7. Starting with version 2.34.0, we will transit to supporting Rocky Linux 9.

FIX Antenna 2.33.0 is released on .

New Features and Improvements

  • Added FIXMessage::getReceiveTimestamp() and a new configuration parameter, ReceiveTimestamps.Enable, for precise message reception tracking.
  • CPU thread affinity settings now support up to 256 CPUs on Linux OSes, optimizing performance on high-end hardware.
  • FIX Antenna Python Enhancements:
    • Added to_json and from_json methods for FixMessage objects, facilitating easy JSON conversion.
    • Introduced the ability to set up custom SSL configurations, offering enhanced security customization.
  • Changed the UDP auxiliary Port to a number greater than 10,000.

  • Eliminated the need in the deprecated libnsl library, simplifying installations and reducing potential compatibility issues.
  • Enhanced the initialization process to allow FIX Antenna to start without an immediate network connection, increasing robustness and flexibility.
  • Improved CSRefCounterPtr class by modifying the dereference operator (operator*) to return T& instead of T const& for const auto-pointers.
  • Removed B2BITS_StringUtils.hB2BITS_MethodsPtr.h, and B2BITS_Bind.h from the FIX Antenna API.

Fixed Bugs

  • Improved the handling of cron expressions, fixing issues with the last day of the month and expanding support for various formats.

  • Resolved an issue where messages containing custom tags would incorrectly convert without raising an error. With this fix, any message with an unknown custom tag will now be properly rejected, preventing erroneous data processing.
  • Fixed the issue when the AggressiveAsyncSpinWaitTimeUs property was defined using the system time when the SocketOpPriority was set to the 'AGGRESSIVE_SEND_ASYNC' value.

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  .

New Features and Improvements

  • FIX Antenna C++ now enables clients to securely access their Username and Password credentials stored in trusted third-party systems such as vaults, databases, and more. Clients can retrieve these credentials using customized scripts according to their needs and incorporate additional actions related to the login process within the same script.
  • The new session parameter is added: InvalidLogonStrategy which defines how Acceptor and Initiator respond to invalid Logon messages. 
  • Added a thread-safe version of the FIXMessage::toRaw() method that uses an external buffer for serialization.

Fixed Bugs

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

New Features and Improvements

  •  Built-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.

  •  The 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.

  •  The ability to throttle incoming messages.

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

  •  Creation 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  .

New Features and Improvements

  •  Throttling 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.

  •  The 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.

  •  The 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.

  •  FIX 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.

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

  •  The 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.

  •  The 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: 

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

    This behavior can be configured via Validation.AllowZeroNumInGroup property.

Logging Improvements

  •  Improved 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.

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

  •  The '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.
  •  Validation 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

  •  Introduced additional affinity properties

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

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

  •  Changed 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 the Explanation of log messages about validation and parsing errors page for more details.

  •  Improved configurable validation of tag numbers

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

  •  Implemented 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.

  •  New Callback OnOutgoingSessionLevelRejectEvent was implemented

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

    Please refer to the Element OnOutgoingSessionLevelRejectEvent page for more details.

  •  Implemented support of multiple hosts by administrative session SourceIPAddress parameter
  •  .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
  •  Updated the contact info in license error messages

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

  •  FixAntenna 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).

Logging improvements

  •  Implemented logging of notification about parameter СonfirmingLogonStrategy=RejectLogout

    When the value of 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 the ConfirmingLogonStrategy page for more details.

  •  Improved 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 "The backup session has the same parameters as the primary session" 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 is no longer available via API, the getVerifyRepeatingGroupBounds'should be used instead.

Fixed bugs

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

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

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 the engine properties file, 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 Improvements

  •  The ability to load FIX dictionaries in QuickFIX format.

    FixAntenna C++ now supports QuickFix dictionaries natively.

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

  •  Support of a custom symbol instead of SOH.

    Added the new 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).

  •  Dedicated 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.

  •  Add 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.

  •  Add 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.

  •  Add 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.
  •  Set 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.
  •  ConnectToGateway sample now supports scheduling
    The ConnectToGateway sample was updated to support session scheduling with sequence reset and custom logons.
  •  FIX 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

  •  [.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.

  •  Upgrade 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.
  •  Support schedule assignment in the EchoServer sample
    EchoServer now supports starting/stopping sessions by schedule. Initiator sessions are supported too.

API improvements

  •  Add a custom login message to SessionExtraParameters
    A new customLogonMessage_ parameter was added to the session configuration parameters. It is available through API only.
  •  Add an API to pass a session's SessionBackupParameters to FixEngineSessionsController
    The support of SessionBackupParameters has been added to FixEngineSessionsController.

Logging improvements

  •  Improve message reject reason for invalid repeating group size

    Detection of invalid group tags with the wrong group size was added.

  •  License system improvement. Use INFO severity if 30 days remain.
    Previous message[WARN] <timestamp> <thread> [Engine] - The license for the '<company>' expires in 38 days. Please call +44 20 369-58-166 or contact us at SupportFIXAntenna@epam.com for further assistance.
    Current message[INFO] <timestamp> <thread> [Engine] - The license for the '<company>' expires in 38 days. Please call +44 20 369-58-166 or contact us at SupportFIXAntenna@epam.com for further assistance.
    [WARN] <timestamp> <thread> [Version] - The license for the '<company>' expires in 8 days. Please call +44 20 369-58-166 or contact us at SupportFIXAntenna@epam.com for further assistance.

Fixed bugs

  •  Incorrect 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.

  •  Timeline file is missing in the package

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

  •  FIXT11 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.

  •  A 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.

  •  EchoServer: 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.

  •  FA 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.

  •  Incorrect 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.

  •  The property AllowZeroNumInGroup doesn't work in FA
    Fixed the AllowZeroNumInGroup property. It allows zero-sized repeating groups in incoming messages when set to true.
  •  Rename "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 Protocol specifications updates

  •  FIXTRADING: New Extension Pack 258
    The FIX 5.0 SP2 dictionary has been updated with 258 Extension Packs.

Documentation

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:

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


    B2BITS_Events.h:

    The following methods signatures have been changed:

    B2BITS_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

    B2BITS_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 );

    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.


Features and improvements

  • 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).

    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.


API improvements

  • Engine::SessionsManager callbacks sink is extended with onSessionTerminated that is called when a session termination happens. This allows user application to react and force the session to reconnect if desired. See documentation.


API changes


Logging improvements

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


Fixed bugs

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

New Features and improvements

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 .

New Features and improvements

FIX Client Simulator (former Simple client):

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.: 

    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

FIX Antenna C++/.NET v2.24.0 

New Features and improvements

API improvements

 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

Other improvements

  • Obsolete dictionary fixdic50sp1cme.xml  has been removed from the package
  • Сlone() method has been implemented for FIXMessage passed to Bovespa::InstrumentListener callbacks


Logging improvements

  • Logging for getaddrinfo failure has been changed:



    Previous message
    ... getaddrinfo(<hostName>) failed: <error code> 
    Current message
    ... Nodename-to-address translation in protocol-independent manner failed - getaddrinfo(<hostName>) failed:  <error code>. Please check DNS configuration. Most likely this error means DNS configuration issue.

Critical bugs and fixes

  • PersistentMM storage is cleaned after Windows reboot
  • FIX Antenna Decorator doesn't support set(Tag, value) method at least for repeating groups

Known Issues

  • Decorator for fixdic50sp2 EP is not generated.


FIX Antenna 2.23.0

February 19, 2018

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

New Features and improvements

Documentation

Extension Packs

Critical bugs and fixes

FIX Antenna C++ samples:

Samples: Throughput2, Parser, EncryptionQuickStart, iLink , CMEGlobexClient  have been decommissioned.

FIX Antenna .Net samples:

Samples: CMEGlobexClient, HelloWorld have been decommissioned.

FIX Antenna 2.22.0

December 22, 2017

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

New Features and improvements

New compilers support:

  • gcc 6.3 support has been added


API improvements

  • Added FIXMessage::apply which takes FixFieldsFunctor. This can be used for iterating over fields of a FIX message without copying them to a temporary container. 
  • API for accessing fields of prepared message has been added to allow extension of prepared message.

Extension Packs


Critical bugs and fixes

  • MIT Adapter:  issue with multiple replays in LSE adapter 


FIX Antenna 2.21.0

October 23, 2017

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

New Features and improvements

New compilers support:

  • Library for Visual Studio 2017 has been added to Windows package

Session-level improvements:

Simple Client:

  • MSVC 2010 Redistributable Package  has been added to Simple Client package

Logging 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:

Critical bugs and fixes

  • FIXICC incorrectly handles FIX sessions with symbols  < , > and & in either targetCompID or senderCompID.

Documentation

FIX Antenna 2.20.2

August 31, 2017

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

FIX Antenna .NET v2.20.1 (r204)

MIFID II support

  • 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

Extension Packs

Other improvements

  • More precise API for getting timestamps is used for MS Windows 10 and higher.

Critical bugs and fixes

  • Engine processes message after session is disconnected

FIX Antenna 2.20.0

June 7, 2017

FIX Antenna C++ v2.20.0 (r195)

MIFID II support (FIX Antenna C++)

  • 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

Logging improvements

  • Logging format is changed for a number of cases:

Validation Errors

Old Category

Old Format

New Category

New Format

ERROR

Required tag missing [RefSeqNum: 1148, RefTagID: 55, RefMsgType: 6]

WARN

Required tag Symbol (55) is missing in message Indication of Interest (6) with sequence number 1148.

ERROR

Incorrect field data format. Incorrect integer value: '1000000.23' [RefSeqNum: 399, RefTagID: 27, RefMsgType: 6]

WARN

Incorrect integer value in tag IOIQty (27): '1000000.23' in message Indication of Interest (6) with sequence number 399.

ERROR

Incorrect field data format. Incorrect float value: '1.3060876925930742E36' [RefSeqNum: 2412, RefTagID: 44, RefMsgType: 6]

WARN

Incorrect float value in tag Price (44): '1.3060876925930742E36' in message Indication of Interest (6) with sequence number 2412.

ERROR

Tag specified without a value [RefSeqNum: 2691, RefTagID: 699, RefMsgType: 6]

WARN

Tag BenchmarkSecurityID (699) is specified with no value in message Indication of Interest (6) with sequence number 2691.

ERROR

Incorrect field data format. Incorrect field size: 8 [RefSeqNum: 2, RefTagID: 52, RefMsgType: B]

WARN

Incorrect field value size in tag SendingTime (52): [expected between 17 and 30, actual 8] in message News (B) with sequence number 2.

ERROR

Incorrect field data format. Field value does not meet ValBlock conditions. Value: 'X' [RefSeqNum: 2, RefTagID: 54, RefMsgType: D]

WARN

Field value 'X' does not meet ValBlock dictionary conditions in tag Side (54) in message New Order - Single (D) with sequence number 2.

ERROR

Tag specified without a value [RefSeqNum: 2, RefTagID: 115, RefMsgType: 1]

WARN

Tag OnBehalfOfCompID (115) is specified with no value in message Test Request (1) with sequence number 2.

ERROR

Incorrect field data format.  [RefSeqNum: 2, RefTagID: 52, RefMsgType: 1]

WARN

Incorrect field data format in tag SendingTime (52) in message Test Request (1) with sequence number 2.

Parsing Errors

Old Category

Old Format

New Category

New Format

ERROR

Tag not defined for this message type. Parsing stopped at column: 63 [RefSeqNum: 2, RefTagID: 11, RefMsgType: B].

WARN

Tag 11 is not defined for this message type. Parsing stopped at column: 63 in message B with sequence number 2.

ERROR

Tag not defined for this message type. Parsing stopped at column: 240 [RefSeqNum: 129, RefTagID: 10, RefMsgType: 6].

WARN

Tag CheckSum (10) must not be present inside repeating group with leading tag 100, but found there. Parsing stopped at column: 240 in message 6 with sequence number 129.

ERROR

Tag appears more than once. Parsing stopped at column: 42 [RefSeqNum: 3, RefTagID: 34, RefMsgType: B].

WARN

Tag MsgSeqNum (34) appears more than once. Parsing stopped at column: 42 in message B with sequence number 3.

General improvement for all other Validation and Parse Errors

Old Format

New Format

[RefSeqNum: <seqNum>, RefTagID: <tag>, RefMsgType: <msgType>]

in tag <tagName> (<tag>) in message < msgTypeName> (<msgType>) with sequence number <seqNum>.

Other Errors

Old Category

Old Format

New Category

New Format

ERROR

Error during processing Logon message from <host>:<port>: Cannot find the acceptor for the <<targetCompID>, <senderCompID>, <sessionQualifier>> session.

WARN

Error during processing Logon message from <host>:<port>: Session with SenderCompID=<senderCompID>, TargetCompID=<targetCompID>, SessionQualifier=<sessionQualifier> is not found.

WARN

Incoming message is received which was previously handled. Message is ignored. [RefSeqNum: 3798, RefMsgType: 6]

INFO

Ignoring Incoming message Indication of Interest (6) with sequence number 3798. The message was processed earlier.

INFO

Message was received with SeqNum that was proceed earlier. Message was skipped.

-           

The message was removed since it duplicates the message above

ERROR

The incoming message has a sequence number (1) less than expected (2) and the PossDupFlag is not set. This indicates a serious error. [RefSeqNum: 1, RefMsgType: D]

ERROR

The incoming New Order - Single (D) message has a sequence number (1) less than expected (2) and the PossDupFlag is not set. This indicates a serious error.

 

Critical bugs and fixes

The following bugs have been fixed:

  • FIXAntenna fails to restart with persistent session storage with error “Invalid record in index file” (regression)
  • Decorator-generated code has portability issues on Linux platform
  • PreparedMessage can have uninitialized memory for the reserved fields

FIX Antenna 2.19.0

May 4, 2017

FIX Antenna C++ v2.19.0 (r186)

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.

Logging improvements

API improvements

Critical bugs and fixes

The following bugs have been fixed:

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

Performance:

  • Serialization of FAST message has been optimized, performance has been increased 2 times.

Environment Variables:

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

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

Other:

  • GCC 4.4 (x86) support will be discontinued starting from the next release.
  • ANSI C support will be discontinued starting from the next release.

Critical bugs and fixes

The following bugs have been fixed:

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

  • Config and templates have been updated in CmeMdp sample.

Critical bugs and fixes 

The following bugs and vulnerabilities have been fixed:

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

FIX Antenna .NET v2.17.2 (r108)

Critical bugs and fixes

SimpleClient:

  • Send batches doesn't work for FIX 5.0 protocol.

FIX Antenna 2.17.0

August 15, 2016

FIX Antenna C/C++ v2.17.0 (r62)

New Features and Improvements

New compilers support:

  • Library for Visual Studio 2015 has been added to Windows package.
  • Library for gcc 5.2 has been added to Linux CentOS7 package.
  • Library for gcc 6.1 has been added to Linux CentOS7 package.

Extension Packs:

Performance:

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

  • Ability to provide session statistics (number of received messages and outgoing queue size) has been added to FIX Antenna API.
  • Platform name has been added to Linux libraries.
  • Error description for fast mapping has been improved.

Critical bugs and fixes

The following bugs have been fixed:

  • MIT adapter goes to Recovery mode twice on start
  • MIT adapter doesn't use the Replay channel
  • MIT Adapter leaves TCP sockets open until all ports are busy
  • Tag 122 in Sequence Reset (4) message should be same as tag 52 (including milliseconds)
  • Property Validation.ProhibitDuplicatedTags = true wasn't applied.

Documentation

FIX Antenna .NET v2.17.0 (r62)

Critical bugs and fixes

SimpleClient:

  • Issue with usage of TLS v1.0 for SSL connection in FIX Client Simulator has been fixed.

FIX Antenna 2.16.0

January 27, 2016

FIX Antenna C/C++ v2.16.0 (r78431)

New Features and Improvements

Bugfixes

  • Сrash during receiving some invalid FIX messages

Documentation

FIX Antenna .NET v2.16.0 (r78402)

New Features and Improvements

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

FIX Antenna 2.15.1

December 18, 2015

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

FIX Antenna 2.15.0

November 3, 2015

FIX Antenna C/C++ v2.15.0 (r77262)

New Features and Improvements

  • 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

Bugfixes

  • 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 

Documentation

FIX Antenna .NET v2.15.0 (r77262)

New Features and Improvements

Bugfixes

New Features and Improvements

SimpleClient

  • 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

FIX Antenna C/C++ v2.14.1 (r71668)

New Features and Improvements

  • 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

Bugfixes

  • DynamicFixMessage object should serialize the field 1128 in the position right after  tag 35
  • The value of id attribute of the block <connection id="<XXX>" > should be used to identify a connection in  MOEX MD adaptor
  • MOEX MD Adapter should allow recovery from early snapshots which has the tag 83=0

FIX Antenna .NET 2.14.1 (r71644)

Bugfixes

  • Support all session states in FA.NET


FIX Antenna 2.14.0

April 9, 2015

FIX Antenna C/C++ 2.14.0 (r70487)

New Features and improvements

  • 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

FIX Antenna .NET 2.14.0 (r70479)

New Features and improvements

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

Documentation

Bugfixes

  • SimpleClient: the sample can't handle Logon response if ForceSeqNumReset option is on
  • SimpleClient: the possibility of copy text from the Events Viewer has been fixed
  • SimpleClient: "Batch Send" button has been fixed if more then one session is used
  • SimpleClient: characters in the utf-8 encoding is translated incorrectly
  • MDP 3.0 .NET: the "open channel_id" command doesn't work


FIX Antenna 2.13.1

March 23, 2015

FIX Antenna C/C++/.NET 2.13.1 (r70228)

  • FIX Session latency degradation in aggressive mode against 2.12 version
  • Crash when switch to FIX session backup connection
  • Broken symlink libV12.so in FIX Antenna packages (Linux)
  • SimpleClient sample can't handle Logon response if ForceSeqNumReset option is on (.Net)
  • MICEX Market Data Adapter: TCP Replay request is rejected with the error "Requested range is invalid"


FIX Antenna 2.13.0

February 24, 2015

FIX Antenna C/C++/.NET 2.13.0 (r69667)

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:

Changes

  • Exe installer is not available from this version. Package is redistributed as zip or gzip archive
  • Password in Logon messages in.in/.out log files are now masked with asterisks 

New features and improvements in Market Data Adaptors

Documentation

New in the Samples

  • New FAST Codec samples were added to FixAntenna distribution package in folder "FastCodec":
    • BovespaDecoder

    • CmeQuickStart

    • CqgQuickStart

    • FastCodecBenchmark

    • FastCodecQuickStart

    • FastDecoder

    • RtsQuickStart

    • SWXFastDecoder

  • MDP 3.0 low-level API sample - C++ and .NET

Bugfixes

  • Millenium IT ITCH Adaptor: Incorrect run recovery process if a message was missed in a channel
  • MDP 3.0: Incorrect outright book
  • MDP 3.0: CmeMdpClient crashes after the second subscription on the same instrument
  • ConnectToGatewayEx sample: incorrect tag value in test messages
  • Missed "logs" and "backup" folders from samples in zip packages
  • Some samples .sh files doesn't have X permissions (Linux)
  • MitClient sample .sh files contains bad symbol (Linux)
  • "Tag is not defined" error for FIX group with large tag number
  • Typo in error message "Sender/Target differs from expected in recieved message"
  • Millenium IT ITCH Adaptor: Relpay recovery is triggered every hour by time out
  • SWXFastDecoder sample "integer in the stream does not fall within the bounds" error on Linux
  • Log.File.Recreate property doesn't work

FIX Antenna .NET 2.13.0 (r69612)

Changes

  • Exe installer is not available from this version. Package is redistributed as zip or gzip archive

Bugfixes

  • Wrong default values in sample engine.properties

  • Garbled message inside iLink sample

  • Incorrect templates for Bovespa sample
  • SimpleClient can't handle Logon response with seq num reset
  • Missed x86 samples for Benchmarks
  • Missed "logs" and "backup" folders from samples in zip packages
  • Bovespa sample: Attempted to read or write protected memory

New in the Samples

  • CmeMdpClientHighLevel was removed as obsolete
  • CmeMdpClient was removed as obsolete
  • CmeMdpMessageClient was added


FIX Antenna 2.12.0

October 20, 2014

FIX Antenna C/C++/.NET 2.12.0 (r68047)

New features and improvements

Changes

  • FIX XML Dictionary file validation: check for unknown fields inside 'update' section has been added
  • Property Log.File.Backup.Dir is now set to %BackupDirectory% if empty or not defined in engine.properties file
  • Empty tail of persistentMM message storage file (for incremental file mode) is shrunk now after session termination.

New in the Samples

  • MICEX_MdScanner config files location has been fixed (Linux)
  • MICEX_QuickStart config files location has been fixed (Linux)
  • FastCodecBenchmark executable filename has been fixed
  • Bug with "pure virtual call" in the Session Qualifier sample has been fixed
  • Default values of options have been set to more appropriate values in the default 'engine.properties' configuration files
  • BovespaClient
    • The 'bovespa.properties' configuration file has been added
    • Parameters for TcpReplay can be configured in the 'bovespa.property' file

    • BovespaClient executable, missing in BovespaClient sample, has been added (Linux)
  • BovespaDecoder
    • Decoding large messages (>140 000 symbols) into FIX has been fixed

Documentation

Bugfixes

  • Memory access violation in the FIXMessage::toRaw and toString methods has been fixed.
  • Reading corrupted storage file when last stored messages is allocated at the end of file has been fixed. Now restoring after failure is more safe.
  • Log messages backup delay was calculated incorrectly. Integer value overflow has been fixed
  • Crash during verification empty 'DayOfMonth' value has been fixed

FIX Antenna .NET

New featuress and improvements

  • Add the method GetReceivedMessages into Session interface, update for vs 2012
  • Add Session.StorageCreationTime, Session.IsStorageExpiredUtc, and Session.ResetStorageIfExpiredUtc methods/properties
  • Check version of the V12.dll and raise exception if FIX Antenna .NET assembly version is different.

Bugfixes

  •  Pin FixMessage object in the Session callbacks to prevent GC to destroy them.

New in the Samples

  • Support of all message storage types has been added to SimpleBenchmark sample
  • Support of command line parameters in run.bat has been added to SimpleBenchmark
  • ForceSeqNumReset is set to ALWAYS in all benchmarks to fix issue related to recoveries on test restart start.
  • Startup of MICEX sample has been fixed
  • BovespaClient: the fast templates file has been updated
  • Paths in 'run.bat' and 'engine.properties' files have been corrected for samples

Documentation and Samples

FIX Antenna 2.10.16.4

August 21, 2014

FIX Antenna C++/.NET 2.10.16.4 (r66359)

The update 4 to version 2.10.16.0. Main updates are:

  • Added support of LME session:  password encryption according to LME requirements has been implemented.
  • When creating FIX logs file names, special characters in sessions Target/Sender CompIDs are replaced with their ASCII codes. All characters except letters and numbers are considered as special ones.
  • Improovements in custom FIX parsers handling
    • Added a method for getting list of registered custom FIX parsers and protocols. 
  • Market Data Adapters:
    • MICEX
      • The issue with arbitrary recovery starting has been fixed.
    • Bovespa
      • The issue with incorrect prices parsing  in Equity snapshots / increments has been fixed.
    • CQG
      • Subscription by SecurityID has been added

FIX Antenna 2.10.16.3

July 24, 2014

FIX Antenna C++/.NET 2.10.16.3 (r65944)

Update 3 to version 2.10.16.0. The main updates are:

  • Allow the user to send the ResetSeqNumFlag field in the custom Logon message.
  • The properties 'ProhibitTagsWithoutValue' and 'VerifyTagsValue' are now supported for repeating groups.
  • Bugfix: The crash when creating an Unregistered Acceptor has been fixed.
  • FIX message format extension: allow 0 in the Raw Data Length field if the Raw Data field is empty.
  • Market Data Adapters:
    • MICEX
      • Bugfix: TCP replay cannot start.
    • Bovespa:
      • Bugfix: BovespaClient doesn't display the order book correctly

FIX Antenna 2.10.16.2

 

FIX Antenna C++/.NET 2.10.16.2 (r65772)

Update 2 to version 2.10.16.0. The main updates are:

  • The crash in the sessions dispatcher has been fixed.

  • additional.xml files in samples have been corrected (duplicated items have been removed).
  • MMFileMsgStorage::retrieveLocal() has been fixed (failure when the index file is full).
  • CQG Market Data Adaptor:
    • MDApplication::unsubscribeBySecurityID method has been added.
    • onSecurityDefinitionListComplete() is now called after all SD feeds completed security definitions loading.
    • Hang when one feed is unavailable has been fixed.
    • Feed ID in SDResolver log messages has been added.
    • Crash when multiple feeds are used has been fixed.

FIX Antenna 2.10.16.1

 

FIX Antenna C++/.NET 2.10.16.1 (r65111)

Update 1 to version 2.10.16.0. The main updates are:

  • Samples have been updated:
    • FastCodecBenchmark sample (project name has been fixed).
    • BovespaQuickStart (dictionary has been updated to the latest venue's spec).
    • MICEX_QuickStart (post-build XML files copying has been fixed).
    • FastCodecBenchmark (dictionary has been updated).
    • b2b_bovespa_client sample for Linux has been added.
    • MICEX_MdScanner sample has been fixed: config files have been moved to /bin folder.
  • CQG Market Data Adaptor:
    • MDApplication::subscribeBySecurityID method has been added.
    • Bugfix: MDApplication cannot re-subscribe to instruments after the book reset.
    • Bugfix: OnSubscribed event should not be called on Resubscription after the book reset.
    • Bugfix: CqgChannelProcessor::unsubscribeAll should clear the instruments set.
  • FIX Antenna .NET:
    • Session::GetReceivedMessages method has been promoted to .NET API.
    • Check the version of the V12.dll and raise an exception if the FIX Antenna .NET assembly version is different.

FIX Antenna 2.10.16.0

 

FIX Antenna C++/.NET 2.10.16.0 (r64792)

New features and improvements

  • 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).

Changes

  • persistentMM storage has been changed to close the mapped region before reopening the new one.
  • Session::putAsIsNoLock(PreparedMessage) does not update the CheckSum field anymore.
  • Utils::bind now accepts const and ancestors (C++ only).
  • The conversion constructor from StringEx has been removed (C++ only).
  • B2BITS_FIXEnums.h: CS enumeration value has been replaced with B2B_CS (C++ only).
  • Statistics class methods have been marked as deprecated. Statistics is disabled because of performance impact.
  • FIXMessage::isEmpty/hasValue for RawDataLength now returns true if the corresponding RawData field is not empty.

New in the Samples

  • Bovespa C++ sample: The support of DeleteThru and DeleteFrom instructions has been added.
  • New SessionQualifier sample.
  • Now user can pass command line parameters to CMEGlobexClient via the run.bat file.
  • Latency C++ sample: session settings have been moved to the engine.properties file.

  • Fix the incorrect type of argument to printf in the Thread.cpp.

Documentation

Bugfixes

43 bugs were fixed. Please refer to VersionHistory.txt for the complete list.

FIX Antenna .NET

FIX Antenna 2.10.15.6

 

FIX Antenna C++/.NET 2.10.15.6 (r63622)

Improvements:

  • The SessionQualifier field in the Logon Message became not required for sessions with Session Qualifier.   

FIX Antenna 2.10.15.5

March 19, 2014

FIX Antenna C++/.NET 2.10.15.5 (r63380)

New features:

  • FIX Antenna .Net: Session::LocateSentMessage( int msgSeqNum ) method has been added
  • SessionId structure which includes Session Qualifier has been added
  • Session Qualifier sample has been added in FA C++ package
  • MICEX Market Data Adapter:
    • NIC teaming isues has been fixed

  

FIX Antenna 2.10.15.4

March 7, 2014

FIX Antenna .NET 2.10.15.4 (r63043)

Bugfixes:

  • SessionExtraParameters.SocketPriority getting wrong params has been fixed

Improvements:

  • [FA-NET] Fix warning "FixEngine::CreateSession(...) "MessageStorageType storageType"

        parameter is deprecated. Please use SessionExtraParameters::storageType instead."

   

FIX Antenna 2.10.15.3

December 30, 2013

FIX Antenna C++/.NET 2.10.15.3 (r60027)

New features:

  • MICEX Market Data Adapter:
    • Ability to specify NIC for feed subscription for DBL.

  

FIX Antenna 2.10.15.2

November 28, 2013

FIX Antenna C++/.NET 2.10.15.2 (r59512)

New features:

  • MICEX Market Data Adapter:
    • Ability to specify NIC for feed subscription.
    • Feed reset detection by seqnum's order.

Documentation:

  • MICEX Market Data Adapter:
    • Recovery modes have been described

Bugfixes:

  • Daylight saving time offset has been fixed.
  • Exception in Admin application has been fixed (array index out of range)
  • Resend requests have been fixed

Improvements:

  • MICEX Market Data Adapter:
    • Filtering MDEntries has been optimized

   

FIX Antenna 2.10.15.1

October 17, 2013

FIX Antenna C++/.NET 2.10.15.1 (r58020)

New features:

  • CBOE CMi2: Converting of session error codes to string description has been implemented.

Bugfixes:

  • 100% CPU usage on Linux in the  AGGRESSIVE_RECEIVE mode has been fixed
  • Memory access violation in the MarketDataStorage in Bocespa sample has been fixed
  • Performance fix for RecorsdStorage

   

FIX Antenna 2.10.15.0

September 23, 2013

FIX Antenna C++/.NET 2.10.15.0 (r56916)

Improvements:

  • Latency of the incoming message processing is improved
  • FIX-parser performance has been improved
  • FIX Session logging has been improved

New Features:

  • PreparedMessage::set( int, AsciiString ) method is added
  • Engine::String class is added which extends std::string with some useful methods.
  • Engine::StringRef typedef is added. Synonym of the AsciiString
  • Engine::WStringRef typedef is added. Synonym of the WideString
  • FixEngine::getSession() method is added
  • SequenceGapEvent::requestLostMessagesFlag_ field is added
  • Option to call Session::put in any state (for some cases rejecting does not work) is added
  • Option to split resend request (SessionExtraParameters::resendRequestBlockSize_) is added
  • Support of VS2012 in Decorator has been added
  • Samples solution files is updated to VS2012
  • ConnectPort session parameter is added
  • FixEngine::createFastCoder with SCP parameter is added
  • Support of the FIXT11, FIX50, FIX50SP1, FIX50SP2 protocols to the FAST session is added
  • MICEX Market Data Adapter:
    • Feed identifying parameters is added to OnCompleteMessageProcessing callback
    • TargetCompId is added to application parameters
    • Myricom DBL support
    • Board support in callbacks
  • CME Market Data Adapter (Globex):
    • Option to receive data for feeds A and B on separated network cards (Sockets) is added
  • Bovespa Market Data Adapter:
    • A call to AppListener::process on all non "X" "W" messages from increment channel is added
  • CQG Market Data Adapter
    • Loading UseTCPRecovery property from config is added
    • Calling OnError for non exists instruments is added

Changes:

  • Session is changed to Send Logout message instead of connection closing on critical error
  • Parameter "localPort" is added to SessionsManager::onIncomingConnection handler
  • It is forbidden to call Session::disconnectNonGracefully withing Application::onLogonEvent callback. Behavior is not defined. LogonEvent::logonAction_ should be used to reject connection (for Acceptors only).
  • Engine::String is renamed to StringEx
  • MockDataReader is renamed to GlobexMockDataReader
  • pushPCAP method is now a template function in public header: B2BITS_MockDataReaderPushPcap.h
  • FIXMessage::type now returns empty value if message is not defined in the FIX dictionary
  • Session does not send Resend Request message in case of gap after reconnect
  • HeartBtInt field is made optional

Bugfixes:

  • "Send Message" command in Admin protocol
  • Session incorrectly processes Logon with 141=Y
  • Session does not switch to the NON_GRACEFULLY_TERMINATED state if connection is rejected by user
  • Memory access violation caused by FD_SET function on Linux
  • Exception in the FIXSessionsMgr if session is destroyed
  • Decorator: Field::isSet and Field::isEmpty methods return incorrect result
  • Message storage is reset incorrectly when IntradayLogoutTolerance is on
  • MICEX Market Data Adapter:
    • Snapshot processing.
    • Tag 336 value acquisition in heavily multi-threaded environment
  • CQG Market Data Adapter
    • Incorrect empty seqNum detection
    • Parsing of messages from incremental channel
    • Applying log dir for binary files

Critical bugs and fixes

  • Engine processes message after the session is disconnected