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 adaptor
- 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 (ftp://ftp.moex.com/pub/FAST/ASTS/docs/Rus_Market_Data_Multicast_User_Guide_Ver_4_0.pdf)
Documentation
- Documentation for Millenium IT ITCH Adaptor
- Documentation for CME MDP 3.0 Adaptor
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 Adaptor
- 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.
- 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)
The update 3 to version 2.10.16.0. Main updates are:
- Allow user to send ResetSeqNumFlag field in the custom Logon message.
- The properties 'ProhibitTagsWithoutValue' and 'VerifyTagsValue' are now supported for repeating groups.
- Bugfix: Crash when creating an Unregistered Acceptor has been fixed.
- FIX message format extension: allow 0 in Raw Data Length field if Raw Data field is empty.
- Market Data Adapters:
- MICEX
- Bugfix: TCP replay cannot start.
- Bovespa:
- Bugfix: BovespaClient doesn't display order book correctly
- MICEX
FIX Antenna 2.10.16.2
July 10, 2014
FIX Antenna C++/.NET 2.10.16.2 (r65772)
The update 2 to version 2.10.16.0. Main updates are:
Crash in 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 index file is full)
- CQG Market Data Adaptor:
- MDApplication::unsubscribeBySecurityID method has been added
- onSecurityDefinitionListComplete() 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
June 4, 2014
FIX Antenna C++/.NET 2.10.16.1 (r65111)
The update 1 to version 2.10.16.0. 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 book reset
- Bugfix: OnSubscribed event should not be called on Resubscription after book reset
- Bugfix: CqgChannelProcessor::unsubscribeAll should clear instruments set
- FIX Antenna .NET:
- Session::GetReceivedMessages method has been promoted to .NET API
- Check version of the V12.dll and raise exception if FIX Antenna .NET assembly version is different.
FIX Antenna 2.10.16.0
May 21, 2014
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 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
class has been improved - New session parameters:
UseBlockingSockets
. If true, session will use blocking I/O. This mode is usefull for OpenOnload and enabled if aggressive mode is ON.Engine::SessionExtraParameters::aggressiveReceiveDelay_
is used as 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 being enabled backward resolve based DNS entry spoofing detection mechanism in DNS related functionsDispatcher.SendWorkersCount
. Defines number of workers to handle outgoing messages.Dispatcher.RecvWorkersCount
. Defines number of workers to handle incoming messages.Dispatcher.SendWorkersTimeout
. Defines number of milliseconds to wait for readiness of the socket to send data.Dispatcher.RecvWorkersTimeout
. Defines number of milliseconds to wait for readiness of the socket to receive data.
- 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 inB2BITS_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
andRR_OVERFLOW_REASON
enumeration values for Bovespa, CQG, and CME Market Data Adaptors has been added (C++ only)
- Bovespa:
- Add
B2B_LIKELY
andB2B_UNLIKELY
macros. Macro allows programmer to mark most possible hive of the if/else statement to let compiler improve branch prediction (C++ only)
Changes
persistentMM
storage has been changed to close mapped region before reopening new oneSession::putAsIsNoLock(PreparedMessage)
does not update CheckSum field anymore- Utils::bind now accepts const and ancestors (C++ only)
- Conversion constructor from StringEx has been removed (C++ only)
- B2BITS_FIXEnums.h: CS enumeration value 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 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 run.bat file
Latency C++ sample: session settings have been moved to the engine.properties file
Fix incorrect type of argument to
printf
in theThread.cpp
Documentation
- Search has been added to FIX Antenna C++ documentation
- Some sections have been improved
- Update requirements to compiler and OS (FIX Antenna .NET, FIX Antenna C++)
- Add Threads configuration section
- Add Session configuration section
- Improve documentation of
NumberOfWorkers
parameter.
Bugfixes
43 bugs have been fixed. See VersionHistory.txt for the complete list.
FIX Antenna .NET
- The following APIs of FIX Antenna C++ now available in .NET as well:
Session::LocateSentMessage
methodSession::LogoutEventArgs::ReconnectFlag
fileldSessionExtraParameters::UseAsyncConnect
fieldSession.LogonEventArgs.LogonAction
: Add option to reject incoming connection with Logout message.
- Dependency on boost_thread library has been removed
- FIX Engine core is now linked to FIX Antenna .NET dynamically.
- Fix documentation error for Bovespa, Micex, Globex namespaces
- for 5% of Bovespa Equity the snapshot comes wrong (i.e. bid/ask/last could be evaluated at 23000 when true price is 10.25). This issue occurs with or without DBL.
FIX Antenna 2.10.15.6
April 1, 2014
FIX Antenna C++/.NET 2.10.15.6 (r63622)
Improvements:
- SessionQualifier field in Logon Message has been made not obligatory 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