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.h, B2BITS_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
API Changes
The new FixEngine::cancelScheduledSessionRestart() API function to cancel the session restart scheduled using the onSessionTerminated() callback.
- The new FixEngine::getLicenseExpirationDate() API function to get the license expiration date.
- The new API functions were added to FixDictionary2::Protocol class to get the tag by name and name by tag.
Documentation Changes
- The description of the Log.Device property was improved.
- The information on the How to configure FIX messages validation page was updated:
- The description of the AllowZeroNumInGroup property was added to the Engine Level properties section.
- The description of the Session.<SenderId>/<TargetId>.Validation.AllowZeroNumInGroup property was added to the Session Level properties section.
- The How to configure Monitoring WebUI for FIX Antenna-based applications page was added.
- The description of the new IncludeProperties parameter was added.
- The Configure throttling of incoming messages section was added to the How to configure FIX messages throttling in FIX Antenna C++ page.
Other Changes
- FIX Antenna C++ is built with OpenSSL 3.0.5.
- FIXAntenna C++ API is C++17 compliant.
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
Logging Improvements
FIX Protocol Changes
API Changes
- FIX message API is extended with traversal capabilities that allow fast iteration over the message.
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
Logging improvements
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
API improvements
Logging improvements
Fixed bugs
FIX Protocol specifications updates
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.hNewIncomingConnection( 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.hNewIncomingConnection( 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
- Engine::SessionExtraParameters::cpuAffinity_ and friends type has been changed to TriAffinity64 that is compatible with the previous one. So no changes to the existing user code are expected.
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
- Added the article: Multi-Language CJK (Chinese-Japanese-Korean) characters support in FIX Antenna/FIX-Protocol
- Added the article: Core binding with affinity mask and threads management in FIX Antenna C++ products
FIX Antenna 2.26.0
FIX Antenna 2.26.0 is released on .
New Features and improvements
- Log4cplus introduced as logging system backend for writing logs to a log collector via TCP (See Log4Cplus Usage for details).
- The new naming scheme specifies the target OS and target C++ ABI.
C++ 98 ABI builds are compatible with GCC 4.4 - 4.9 and above and C++98, 11 modes, C++11 ABI builds are compatible with GCC 5.1 and above and C++98/11/14/17 modes. (See How to build your application with FIXAntenna C++ on Linux for more information). - Updated iLink FIX dictionary for CME
- Added NumOrdersInMatchStep(9700) tag
- Added repeating group for Fill Reason
See https://www.cmegroup.com/confluence/display/EPICSANDBOX/iLink+Execution+Report+-+Fill+Messaging+Behavior for details.
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
- Windows x32 platform support is discontinued starting from this release.
Role, Host, Port, HBI, version and custom logon message can be configured in engine.properties (see How to configure FIX Sessions with engine.properties file#Createpre-configuredsessionsfromapropertiesfile.)
Function for getting list of pre-configured sessions from engine properties has been introduced to API: ConfiguredSessionsMap getConfiguredSessions(const Engine::SessionRole filterInRole = NA_SESSION_ROLE) const;
Property SSLCiphersList has been added to configure ciphers for SSL connections.
FIX Client Simulator (former Simple client):
- Tags names have been added to message details window
- Ability to save session parameters has been added (see FIX Client Simulator#Savesessionconfiguration)
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
- API for activate/deactivate engine listening sockets has been introduced. Refer to How to pause listening incoming connections for more information.
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
- CME Globex API Secure Logon support has been added. Refer to How to connect to CME Globex using Secure Logon for more information;
- A new threading mode has been added (SocketOpPriority = DIRECT_SEND). Refer to SocketOpPriority description for more information;
- Queuing strategy for handling gaps has been added. Refer to How to set strategy for processing out-of-sequence messages.
Documentation
- New article Bovespa Market Data Adaptor: How to use TCP Replayer has been published
Extension Packs
- FIX 5.0 SP2 dictionary has been updated with 237-240 Extension Packs.
Critical bugs and fixes
- IntradayLogoutTolerance=false is ignored when SocketOpPriority is AGGRESSIVE_SEND_AND_RECEIVE;
- MIC codes are outdated in FIX/FIXML dictionaries;
- Engine::TZTimeHelper::nowUTCDateOnly() function returns an incorrect year;
- Bovespa MD Adapter - chunked messages are processed incorrectly;
- Bovespa MD Adapter - memory leak during the recovery procedure;
- Bovespa MD Adapter - TCP Replay works incorrectly.
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
- FIX 5.0 SP2 dictionary has been updated with 229-236 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:
- An ability to limit the reply volume on resend request has been introduced (using setBeginSeqNo and setEndSeqNo of ResendRequestEvent in onResendRequestEvent call-back method)
- The default value of ResendMessagesBlockSize has been changed to 1000 to improve reliability of FIX connectivity
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>
ERROR WARN
Other improvements:
- MIT Adapter has been updated to support LSE MIT 303 Level 2 - MITCH Specification 11.8.2
- Public methods FAProperties::getListenPorts() and FixEngine::getListenPorts() have been added
Critical bugs and fixes
- FIXICC incorrectly handles FIX sessions with symbols < , > and & in either targetCompID or senderCompID.
Documentation
- FA C++ programmer's Guide Protocol customization section has been actualized
FIX Antenna 2.20.2
August 31, 2017
FIX Antenna C++ v2.20.2 (r214)
MOEX Spectra Market Data Adapter:
New FAST gate v1.4.2 is now supported:
Spectra adapter dictionary fixdic50sp2spectra.xml has been updated based on the new templates.xml.
Support of Sequence Reset messages has been added.
- Article "How to use multiple Security Definition feeds for instrument subscription in MOEX Spectra MD Adapter" has been added.
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
- FIX 5.0 SP2 dictionary has been updated with 217-228 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:
- FIX 5.0 SP2 dictionary is updated with EP217 - EP222 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
- High-resolution timestamps are supported in session logs as a part of MIFID II requirements. Please see FIX Engine parameters - Storages for details.
- Log level about connection attempt without logon are changed from ERROR to WARN.
- Thread names logging is supported. Please see FIX Engine parameters - Log.File.Format for details.
API improvements
- Public API is extended for Repeating Groups in FIXAntenna C++. Please see How to work with Repeating Groups for more details.
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 Definition, Security 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:
- MOEX Spectra Market Data Adapter and MOEX ASTS Market Data Adapter have compatibility issues.
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:
- Support of new version of FAST Gate 1.3.0 for Derivatives Market functionality has been added.
- Ability to bind data feeds to specific NIC has been added.
MOEX ASTS Market Data Adapter:
- Support of new version of FAST udp multicast marketdata 4.5 functionality has been added.
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:
- FIX 5.0 SP2 dictionary has been updated with 209-216 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.
- 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:
- FIX 5.0 SP2 dictionary has been updated with 197-208 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).
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
- Engine.properties example was added to /doc directory to the package.
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
CME iLink MSGW support has been added and certified
CME Drop Copy 4.0 support has been added and certified
MIT Adapter has been updated to support LSE MIT 303 Level 2 - MITCH Specification 11.6
Сertification for Borsa Istanbul FIX Order Entry and FIX Reference Data interfaces of BISTECH Trading Platform has been passed
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)
Bugfixes
- Presence of required fields in the message is not checked when using additional.xml
- Bovespa MD Adaptor fails to process chunks when unordered
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
- Spectra Market Data Adapter migration guide
- How to use Spectra Application Listener callbacks in FIX Antenna
FIX Antenna .NET v2.15.0 (r77262)
New Features and Improvements
- MOEX FIX/FAST Market Data Adaptor functionality was extended with support of Instrument Status Feed (ISF)
Bugfixes
- MOEX FIX/FAST Market Data Adaptor: onError callback is called in case of the crashes caused by exceptions in callbacks
New Features and Improvements
- Ability to specify application protocol version to parse FIXMessage was added
- Property Session.SenderSubID was added
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
- Separated port for admin session in FIX Antenna
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
- How to Configure FIX Sessions with engine.properties File
- How to configure Micex MDApplication for April templates
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
- How to use SSL with FIX Antenna C++ and FIX Antenna .NET (the section for FIX Antenna .NET has been added)
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)
Bugfixes
- 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:
- Book management API for CME MDP 3.0 Handler
- MOEX Spectra FAST gateway adaptor
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:
- Method: Engine::PreparedMessage::initField
- Method: Engine::PreparedMessage::setMsgSize
- Method Engine::PreparedMessage::setMsgStart
- Class: System::Thread
- Class: System::HRTimer
- Class: Utils::RefCounter
- Class: Engine::FastCodec
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
- Bovespa: onSecurityStatus callback
- MDP 3.0: Myricom DBL UDP support
- MDP 3.0: Book Management API
- Millenium IT ITCH Adaptor: InstrumentID is passed to the user in onItchMessage callback
Millenium IT ITCH Adaptor: Ability to configure periodic replay/recovery timeouts has been added (disabled by default)
MICEX Market Data Adapter: Support for changes in the Market Data streams, which are planned to be launched in April 2015 (RUS_Market_Data_Multicast_User_Guide_Ver_4_0_2.pdf)
Documentation
- Documentation for Millenium IT ITCH Adaptor
- Documentation for CME MDP 3.0 Handler
Description for log record format in sample engine.properties file
Description for 'Trace' log severity in sample engine.properties file
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
- Packaging: many separate platforms were combined in a single package. Now there are only one Windows (x32&x64, VS 10&11) and one Linux (x32&x64) pakages
- New Market Data Adaptor have been added:
- CME MDP 3.0 Handler
- Millenium IT ITCH Adaptor (http://www.millenniumit.com/)
- Implementation for London Stock Exchange (LSE)
- Implementation of Johannesburg Stock Exchange (JSE)
- FIX Sessions:
- Ability to send ResetSeqNumFlag field in the custom Logon message has been added
- Method MsgStorage::getCreationTime has been added (C++ only)
- Method UTCTimestamp::dayOfWeek has been addded (C++ only)
- FAST codec:
- New class 'FastMappingOptions' has been introduced to provide customization of types conversion rules; customization of conversion 'char'/ 'bool' has been implemented
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
- Documentation for MessageStorageType and UnderlyingProtocol has been corrected
- Documentation of the Persistents.LogIncrementSize and Persistents.IdxIncrementSize parameters has been extended
- Documentation for UTCDateOnly and UTCTimeOnly has been extended
- Session state chart has been updated
- Requirements page has been updated
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
- Documentation for AfterMessageIsReceivedEventArgs::Msg field has been fixed
- Documentation of the Statistics class has been extended.
- Documentation for methods Session::Put() and Session::connect() as initator has been extended
Documentation of the ConstFieldValue has been extended
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
- MICEX
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
- MICEX
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++):
- Session::parse
- Session::waitForTerminated
- PreparedMessage::getMsgSeqNum
- PreparedMessage::getCheckSum
- more operators have been added to Engine::Decimal class
- 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).
- Bovespa:
- 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
- The search was added to FIX Antenna C++ documentation.
- Some sections were improved.
- The requirements for the compiler and OS (FIX Antenna .NET, FIX Antenna C++) were added.
- Added Threads configuration section.
- Added Session configuration section.
- The documentation about the NumberOfWorkers parameter is added.
Bugfixes
43 bugs were fixed. Please refer to VersionHistory.txt for the complete list.
FIX Antenna .NET
- The following APIs of FIX Antenna C++ are now available in .NET as well:
- Session::LocateSentMessage method.
- Session::LogoutEventArgs::ReconnectFlag field.
- SessionExtraParameters::UseAsyncConnect field.
- Session.LogonEventArgs.LogonAction. Added the option to reject the incoming connection with a Logout message.
- Dependency on the boost_thread library was removed.
- FIX Engine core is now linked to FIX Antenna .NET dynamically.
- Filled the documentation gaps for Bovespa, Micex, and Globex namespaces.
- For 5% of Bovespa Equity the snapshot comes wrong (i.e. bid/ask/last could be evaluated at 23000 when the true price is 10.25). This issue occurs with or without DBL.
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