FIXEdge 6.9.0 Release Notes
FIXEdge 6.9.0 released on March 23, 2020
The main features released are the REST Initiator transport adapter, security mode support for the REST Acceptor transport adapter, Managed Queue functionality. Also, various critical and major bugs were fixed.
New features and improvements
Managed Queue as a part of store-and-forward functionality is introduced providing a mechanism for storing messages and releasing them on a time-schedule basis.
Managed Queue features
- Messages are stored and released according to market schedule hours
- Multiple queues can be configured for different order types \ venues
- Rest Admin API is extended with the functionality of viewing queues and schedules
- Sequence reset doesn't affect the messages in a queue
- Smart logic for Cancel, Cancel\Replace is implemented (disabled by default)
For more information on that please refer to the document.
REST Initiator Adapter is introduced for sending messages via HTTP/HTTPS POST requests
REST Initiator Adapter features
- An outgoing HTTP message body can be formed in several modes:
- raw FIX message with SOH as a delimiter
- json representation of FIX messages tags and values
- content of 213 tag of FIX message
- Proxy server support
- Message validation function
- Security mode (HTTPS) support
For more information on that please refer to the document.
New features were added to REST Acceptor Adapter
New REST Acceptor Adapter features
- raw FIX message type support
- Security mode (HTTPS) support
For more information refer to the document.
ICE TC and POF Solutions
- ICE TC: Implemented a possibility to disable saving 'Blocks' and 'Legs' to the DB
- ICE TC: Speed up filtering and inserting records to DB
- Dictionaries were updates according to last specification (ICE TC 4.7, ICE POF 3.8)
- Strategy harmonization conformance testing has been passed
- The default value of FixLayer.FixEngine.Session.ICESession.AsyncProcessing.QueueSizeLimit parameter is set to -1 (Unlimited queue size)
- SecDefs messages limitation of 256 000 bytes was increased up to 1 024 000 bytes
REST Admin API
- Rest Admin API was extended with FIX session management API:
- get FIX session status
- get FIX session statistics
- Restart a FIX session
- Configuration support absolute paths
- Ability to specify network interface for listening
- Plain HTTP mode was added for debugging \testing purposes
For more information refer to the document.
Logging
- Removed unnecessary NUL symbols from the logs.
- The severity of Rest Acceptor TA validation and parsing reject was changed from TRACE to WARN
Other
- OpenSSL dependency version updated to 1.0.2k for Linux package
- JMS Transport Adapter stability was increased
Extension Packs:
- FIX 5.0 SP2 dictionary has been updated with 252 Extension Packs.
Latest FIX Antenna C++ under the hood:
- FIXEdge has been built with FIXAntenna 2.27.1 with changed logging format for a number of cases. See FIX Antenna C++ Release Notes for more details.
FIXICC
- The latest version of FIXICC 2.10.19 comes with the FIXEdge.
Fixed bugs
- FIXEdge failures if updateHistory function is called with incorrect number of arguments
- REST Admin API couldn't create a session if parameters InSeqNum,OutSeqNum,StorageType were not specified
- FIXEdge requires both VS 2010 and VS 2015 redistributable libraries packages
- Unsent messages from JMS TA might be lost after FIXEdge restart
- FIXEdge failures on shutdown if REST Acceptor TA is processing messages.
- A memory leak in XML Socket monitoring functionality
- Attempts to connect to unreachable host might lead to FIXICC malfunction
- An initiator did not reestablish a connection after receiving a logout in some cases
- An additional dictionary adds repeating groups incorrectly if leading tag is already present in the message
- An additional dictionary adds repeating groups incorrectly if leading tag of the nested group becomes starting tag of the parent group
Log Replicator
- Log replicator fails on start if one instance is already running
- Log replication server fails after replication client stop
- Log replication client stops replication if there is a broken storage
- Log replication server fails if log replication client cannot update a storage
FIXEdge 6.8.0 Release Notes
FIXEdge 6.8.0 released on July 4, 2019
New Features and improvements
SSL support changes:
- An initiator can now use a certificate signed by counterparty's CA certificate for authentication
- Added support for the following SSL certificates formats: pfx files, .pem encoded files, .der - binary encoded files in ASN1 standard.
- Added support of SSL certificates with and without passwords. Settings SSLCertificatePassword and SSLPrivateKeyPassword were introduced.
- SSLRequireClientCertificate property was replaced by SSLValidatePeerCertificate.
- SSLCheckPrivateKey property was removed. Correspondence between the key and certificate will be checked automatically. FIX Edge does not establish session if the key doesn't correspond to the certificate.
For more information see: Configuring FIX Sessions, How to configure built-in SSL support for FIX session in FIXEdge
Please note, that SSL-related properties:
can be set via editing engine.properties and FIXEdge.properties only.
FIXICC
- The latest version of FIXICC 2.10.18 comes with the FIXEdge.
Changes in ICE Trade Capture Solution
- Performance optimization on duplicates filtering in stored procedures
- FIX dictionaries are updated according to ICE FIX Trade Capture specification version 4.5
Changes in ICE Private Order Feed Drop Copy Solution
- FIX dictionaries are updated according to ICE POF specification version 3.5
Logging improvements:
- Added logging of host:port for incoming connection event:
Host:port of incoming connection was added | |
Previous message | [NOTE] 20190129-06:56:49.319 [13100] [Engine] - New incoming connection was detected (from 127.0.0.1:60779) |
Current message | [NOTE] 20190129-06:56:49.319 [13100] [Engine] - New incoming connection was detected (from 127.0.0.1:60779 to 127.0.0.1:9011) |
- VS 2010 C++ Redistributable Package (x64) required for installation added to FIXEdge's \Redist\VC10 directory. Also refer to Installation.
Fixed critical bugs:
- Reconnect mechanism doesn't work in FIXEdge's JMS adapter
- FIXEdge failure if LDAP authentification has been used.
- FIXICC shows state of the session right after FIXEdge start incorrectly
- FIX Admin Session prevents graceful termination of FIXEdge
- REST Admin API has inconsistencies between parameters on POST session create request and GET session parameters.
- Calling Java Script function saveToHistory with incorrect arguments leads to FIXEdge malfunction
FIXEdge 6.7.1 Release Notes
FIXEdge 6.7.1 released on March 6, 2019
Changes in ICE Trade Capture Solution
- Support of ICE FIX Trade Capture specification version 4.4 was added
- SQL Stored Procedures are used instead of JavaScripts for data processing and saving to DB
- Support for Defined Strategy (35=UDS) messages was added:
- Data Model was adjusted to store all the data coming in Defined Strategy (35=UDS) messages
- Defined Strategies Subscriptions are implemented for UDS
- StrategyPreference(9006) and PublishMktCreationRealtime(9010) tag values are set to "1" in Logon(35=A) to receive new Defined Strategy (35=UDS) messages published over the session in real time. Receiving Defined Strategy (35=UDS) messages is possible when switching to New Security Definition interface (StrategyPreference(9006)=1) only.
- CurrentDate and SenderCompID columns are added to the Trade Capture Reports database tables.
- Fields data types and indexes were changed in Trade Capture Reports and Security Definitions tables to increase the speed of message processing.
- The format of the additional dictionary was changed to resolve possible conflicts of the additional dictionaries in FIXEdge multiple connections configurations. See How to use dictionary from ICE Trade Capture Solution package based on FIXEdge 6.7.1 in previous versions.
- Username and Password settings moved from Сustom Logon to the FIXEdge.properties configuration file.
See "How to upgrade" articles by the following links:
Changes in ICE Private Order Feed Drop Copy Solution
- Support of ICE FIX Private Orders specification version 3.4 was added
- Support for Allocation (35=J) messages was added:
- Data Model was adjusted to store all the data coming in Allocation (35=J) messages
- Message processing by JavaScript is implemented
- SessionQualifier was added to configuration by default in ICE POF Solution in order to work along with ICE Trade Capture solution on the same FIXEdge instance.
- The format of the additional dictionary was changed to resolve possible conflicts of the additional dictionaries in FIXEdge multiple connections configurations. See How to use dictionary from ICE Private Order Feed Solution package based on FIXEdge 6.7.1 in previous versions.
- Handling of duplicate Execution Report (35=8) messages is changed for correct processing of messages with the same ExecID(17) tag:
- The uniqueness of messages is determined by the set of values of the following tags: ExecID(17), Symbol(55), Side(54), ExecType(150) (added), TransactTime(60) (used instead of SendingTime(52))
If TransactTime(60) tag isn't specified in the Execution Report, then the current time is inserted
If the TransactTime field value wasn't specified in the Execution Report (it has been generated by JS), then TransactTimeWasNULL is set to 'Y' - TimeStampPreference(9007) tag set to "1" in Logon(35=A) message for increase time precision in SendingTime(52), TransactTime (60), and RFQTransactTime(9213) tag values
- Table columns for storage and post-processing PossDupFlag(43) and PossResend(97) tag values were added
- Configuration file FIXEdge.properties is extended with the following settings:
- SSL settings were added
- Username and Password setting are moved from Сustom Logon
- Schedule for ICE Private Order Feed Drop Copy session was added
See "How to upgrade" articles by the following links:
Extension Packs
- FIX 5.0 SP2 dictionary has been updated with 241-247 Extension Packs
FIXEdge 6.7.0 Release Notes
FIXEdge 6.7.0 released on December 19, 2018
New Features and improvements
- Added option to log important (configurable) lifecycle events (i.e. application starting, application complete) to ArcSight
- Added option for logging to Splunk
- Added support for .pfx and .der certificates for acceptor sessions (See How to configure built-in SSL support for FIX session in FIXEdge for details)
- Property SSLCiphersList has been added to configure ciphers for SSL connections (See How to use SSL with FIX Antenna C++ and FIX Antenna .NET also)
Changes in ICE Trade Capture Solution
- SSL for ICE session has been enabled in default configuration
- Tables columns names are explicitly specified in stored procedure
- Added internal buffering for incoming messages from FIX session to mitigate of too high rate of Security Definition messages from ICE
- Added support ICE FIX Trade Capture specification version 4.3
Changes in REST Admin API
- The command to stop FIXEdge has been introduced in the REST Admin API
Logging improvements:
Typo has been fixed: | |
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JMSAdaptorTransportLayer.JMSTA] 1095492 Sending onStateChanged() to CORRECLTY_TERMINATED |
Current message | 2018-05-18 07:12:16,521 UTC DEBUG [JMSAdaptorTransportLayer.JMSTA] 1095492 Sending onStateChanged() to CORRECTLY_TERMINATED |
Logging category has been changed: | |
---|---|
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JNI_WRAPPER] 1095492 Session 'SocGenProducer' created. Sending onLogon to dispatcher. |
Current message | 2018-05-18 07:12:16,521 UTC INFO [JNI_WRAPPER] 1095492 Session 'SocGenProducer' created. Sending onLogon to dispatcher. |
Logging category has been changed: | |
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JNI_WRAPPER] 1095492 Session 'SocGenProducer' connected. |
Current message | 2018-05-18 07:12:16,521 UTC INFO [JNI_WRAPPER] 1095492 Session 'SocGenProducer' connected. |
Logging category has been changed: | |
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JNI_WRAPPER] 1095492 Session 'SocGenProducer' disconnected with reason [<reason>]. Sending onLogout to dispatcher. |
Current message | 2018-05-18 07:12:16,521 UTC INFO [JNI_WRAPPER] 1095492 Session 'SocGenProducer' disconnected with reason [<reason>]. Sending onLogout to dispatcher. |
Logging category has been changed: | |
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JNI_WRAPPER] 1095492 Session 'SocGenProducer' destroyed. |
Current message | 2018-05-18 07:12:16,521 UTC INFO [JNI_WRAPPER] 1095492 Session 'SocGenProducer' destroyed. |
Logging category has been changed: | |
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JNI_WRAPPER] 1095492 Session 'SocGenProducer' reconnect. |
Current message | 2018-05-18 07:12:16,521 UTC INFO [JNI_WRAPPER] 1095492 Session 'SocGenProducer' reconnect. |
Logging category has been changed and reason has been added: | |
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JNI_WRAPPER] 1095492 Session 'SocGenProducer' creation error. |
Current messages | 2018-05-18 07:12:16,521 UTC ERROR [JNI_WRAPPER] 1095492 Session 'SocGenProducer' creation error. |
Reason has been added: | |
Previous message | 2018-05-18 07:12:16,521 UTC ERROR [JNI_WRAPPER] 1095492 Session 'SocGenProducer' send message error. |
Current messages | 2018-05-18 07:12:16,521 UTC ERROR [JNI_WRAPPER] 1095492 Session 'SocGenProducer' send message error. 2018-05-18 07:12:16,521 UTC ERROR [JNI_WRAPPER] 1095492 <reason> |
Logging category has been changed and reason has been added: | |
Previous message | 2018-05-18 07:12:16,521 UTC DEBUG [JNI_WRAPPER] 1095492 Session 'SocGenProducer' general error. |
Current messages | 2018-05-18 07:12:16,521 UTC ERROR [JNI_WRAPPER] 1095492 Session 'SocGenProducer' general error. 2018-05-18 07:12:16,521 UTC ERROR [JNI_WRAPPER] 1095492 <reason> |
Fixed critical bugs:
- Incorrect FIX Session state in FIXICC after restarting the session
- Missing timestamps in session logs are after corrupted storage recovery
- Sequence numbers are processed incorrectly in certain cases when DeliverAppMessagesOutOfOrder=true
- Java Script function "createDateStr(DATETIMENanoUtc)" works incorrectly with undefined value for seconds on CentOS6
- Incorrect decoding of Latin-1 in CME STP Transport Adapter
- A flag Q (for queued FIX messages) is not replicated in FIX logs replicator
Documentation:
FIXEdge configuration with the principle of least privilege has been documented
FIXEdge 6.6.1 Release Notes
FIXEdge 6.6.1 released on August 3, 2018
Critical bugs and fixes
- Action 'SendToTier' generates incorrect reject in response to Execution Report message.
FIXEdge 6.6.0 Release Notes
FIXEdge 6.6.0 released on July 24, 2018
New Features and improvements
- New interface of Security Definition (35=d) messages has been fully supported and enabled by default.
Partial backward compatibility is supported - old interface of security definitions can be safely processed and stored in the data model. - Data Model has been adjusted to support and store all the data coming in new interface of Security Definition (35=d) messages.
- Changes in FIX interface introduced by the latest ICE Trading Platform Release (June 8, 2018) have been supported.
The solution performance has been improved:
- Introduced consequence requests of security definitions which prevent TCP buffer overflow and possible connection break. See updated ICE Trade Capture Overview and workflow overview for details.
- Changed implementation of data storage mechanism: replaced JavaScript with SQL stored procedures.
- Optimized indexes structure and their datatypes in Security Definitions tables.
ErrorsQueue has become enabled for all IBM MQ TA modes.
All unprocessed messages will be routed to ErrorsQueue. Setup and handling ErrorsQueue on IBM MQ Manager is a client responsibility.
See IBM MQ Series Adaptor Configuration for more information
MQ TA dependency (IBM MQ client library) has been updated to version 8.0.0.6.
It is recommended to use IBM MQ Client library version 8.0.0.6
IBM MQ manager and client versions compatibility is described here http://www-01.ibm.com/support/docview.wss?uid=swg21312967.
However, current release was tested against IBM MQ Queue Manager 8.0.0.6 version only.
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. |
JMS TA logging for messages without timestamps has been improved: | |
Previous message | 2018-05-22 10:14:31,533 UTC INFO [JNI_WRAPPER] 11232 Timestamp not found in FIXML message. |
Current message | 2018-05-22 10:14:31,533 UTC WARN [JNI_WRAPPER] 11232 There is no Timestamp in the delivered message. The delivery notification has been skipped. |
Critical bugs and fixes
- Accepting a session during FIXEdge initialization could lead the failure.
- Accepting a session during shutdown could interrupt the graceful stop.
- IBM MQ Transport Adapter's transaction cannot be rolled back in the case when FIXEdge failed to parse the first message of the batch.
- Memory leak appears in RabbitMQ Transport Adapter.
- Error message about repeating group size has an incorrect description.
- Non-graceful termination leads to the loss of all messages in the persistentMM storage on Windows.
- FMXML handler doesn't produce valid XML in case XML-reserved symbols are used.
- Log Replicator doesn't work with growing log files.
- Service created via replication tool can't start correctly.
FIXEdge 6.5.0 Release Notes
FIXEdge 6.5.0 released on March 16, 2018
New Features and improvements
- CME 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 (SocketPriority = DIRECT_SEND). Refer to How to use SocketPriority parameter article for more information;
- Queuing strategy for handling gaps has been added. Refer to How to set strategy for processing out-of-sequence messages;
- FIXEdge performance in FIX protocol scenario conversion has been improved up to 8% (response time);
- Session qualifier support has been added. Refer to How to use SessionQualifier for more information;
- Limits notifications for unregistered acceptors have been added;
- Support of debug-level logging for OpenLDAP library is available since FIXEdge 6.2. Refer to the appropriate parameter.
- New interface of Security Definition (35=d) messages has been supported and enabled by default;
- Unique Option market IDs (OXXFXX) can be now requested via Security Definition Request (35=c) message;
- Configuration has been extended to store all the fields (including MiFID II fields) of Trade Capture Report (35=AE) and Security Definition (35=d) messages in the database.
Extension Packs
- FIX 5.0 SP2 dictionary has been updated with 237-240 Extension Packs.
FIXICC
- The latest version of FIXICC 2.10.11 comes with the FIXEdge.
Critical bugs and fixes
- IntradayLogoutTolerance=false is ignored when SocketOpPriority is AGGRESSIVE_SEND_AND_RECEIVE;
- MIC codes are outdated in FIX/FIXML dictionaries;
- SMTP adaptor doesn't work with TLS encryption;
- Incorrect conversion of UTCTimestamp in FIXML to FIX conversion.
Breaking changes
- Windows version of FIXEdge has been built using VS 2015. VS 2015 C++ Redistributable Package (x64) is required for installation (it can be found in FIXEdge's \Redist directory or downloaded from Microsoft web-site). Also refer to Installation or Upgrade instruction;
- Tibco TA - linking mode has been changed for Tibco client libs on Windows (static to dynamic): tibrv.dll, tibrvcm.dll, tibrvft.dll are supposed to be in PATH (or in bin directory).
FIXEdge SDK updates
- Introduced ability to reject the connection with custom Logout in FE SDK;
- Introduced ability to modify confirming Logon in FE SDK;
- Introduced ability to send PreparedMessage messages from FE SDK Handlers/Adapters;
- Introduced the same password secure mechanism like Transport Adapters to FE SDK Handler.
FIXEdge 6.4.0 Release Notes
FIXEdge 6.4.0 released on December 08, 2017
New Features and Improvements
CME ClearPort
- CME ClearPort API handler has been improved to meet CME security requirements (see here)
Logging improvements
Old category | Old format | New Category | New format | |
---|---|---|---|---|
Meaningless record has been removed | INFO | [STPAdaptor] <thread> Received FIX Email message contains unknown sender name 'CMESTPFIX3:IRATFIRM', message was skipped. | ||
Severity has been changed, text has been changed | ERROR | [STPAdaptor] <thread> Send message to user failed, reason: 'Observer->send returns false' | DEBUG | [STPAdaptor] <thread> No rule matching message from STP has been found. Message: <FIX message> |
improvements of tiers and permissions logging | INFO | [BL_RoutingTable] <thread> Tiers cache contains 31 strings | INFO | [BL_RoutingTable] <thread> Tiers cache contains 4 permission(s), 1 tier(s), 10 tier member(s). |
Grammar has been improved | ERROR | [EngineAdaptor] <thread> Session No. ACCEPTOR2 <FIXEDGE,FIXCLIENT2> cannot be created now. Reason: Schedule properties is empty | ERROR | [EngineAdaptor] <thread> Session No. ACCEPTOR2 <FIXEDGE,FIXCLIENT2> cannot be created now. Reason: Schedule properties are empty |
extra symbol has been removed | WARN | [FL_FixEngine] <thread> Session limit 'IncomingThroughputLimit for the session FIXEDGEFIXCLIENT1 is reached. Current value: 1000, threshold value: 100 | WARN | [FL_FixEngine] <thread> Session limit IncomingThroughputLimit for the session FIXEDGEFIXCLIENT1 is reached. Current value: 1000, threshold value: 100 |
extra symbol has been removed | INFO | [FL_FixEngine] <timestamp> INFO [FL_FixEngine] <thread> Session limit 'IncomingThroughputLimit for the session FIXEDGEFIXCLIENT1 is in range. Current value: 0, threshold value: 100 | INFO | [FL_FixEngine] <thread> Session limit IncomingThroughputLimit for the session FIXEDGEFIXCLIENT1 is in range. Current value: 0, threshold value: 100 |
Grammar has been improved | Reconnection tryings is elapsed for the HTTPS client ... reconnect tries is elapsed | Reconnection tries are elapsed for the HTTPS client ... reconnect tries are elapsed | ||
record has been removed | ERROR | [JNI_WRAPPER TransportLayer.RMQTA] <thread> Exception occured while executing TA getMonitoringParameters(). |
Experimental features:
- Rest Admin API interface has been introduced (See FIXEdge Admin REST API).
Business Layer
- JavaScript function to check accessibility of FIX field has been added. See Operations with message fields for more info.
Extension Packs:
- FIX 5.0 SP2 dictionary has been updated with 229-236 Extension Packs.
Critical bugs and fixes
- ! Breaking change: Incoming session is accepted even if CreateSessionEvent finishes with errors - see Element CreateSessionEvent block.
- FIX to XML conversion using action <Convert> doesn't work with microsecond precision tags.
- XSLT transformation leads to a memory leak
FIXEdge 6.3.0 Release Notes
FIXEdge 6.3.0 released on September 20, 2017
New Features and Improvements
Session-level improvements
- A mechanism for skipping duplicated resend requests has been implemented
- An ability to limit the reply volume on resend request has been introduced
- The default value of ResendMessagesBlockSize has been changed to 1000 to improve reliability of FIX connectivity
To learn more about these improvements, please visit How to handle Resend Requests page.
Rest Acceptor Transport Adapter
- Rest Acceptor Transport Adapter has been added
Logging improvements
Logging category has been changed for a number of cases:
Message Old category New category Comment 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 transport is down - cancel requests, notify user
INFO ERROR CME STP Transport Adaptor specific change
Number of attempts of sending requests to CME STP in case of HTTPS transport error has been made configurable by means of SendingMaxAttempts property (equal to 2 by default).
Snippet from FIXEdge.propertiesTransportLayer.CMESTP.SendingMaxAttempts = 2
- CME STP Transport Adapter has been improved to perform additional attempts to send HTTPS request in case of any CME STP transport error
Schedules for ICE Test and Prod environments were introduced into the ICE Trade Capture configuration. Check ICE Trade Capture FAQ for details
Critical bugs and fixes
- Engine processes message after session is disconnected
- FIX sessions are blocked for heartbeat in case resend request processing
- JS function parseMessage doesn't use application version as hint for a parser
- FIXICC incorrectly handles FIX sessions with symbols < , > and & in either targetCompID or senderCompID.
CME STP Transport Adapter sends wrong LastUpdateTm value
Messages may be lost while resending from persistent in RabbitMQ Transport Adapter
- ICE Handler: FIXEdge requests the data from ICE that already has been received
Known Issues
JMS Transport Adapter and Rabbit MQ Transport Adapter may not start due to issue with CVE-2017-1000364 update of RHEL | CentOS 6.9 (kernel 2.6.32-696.3.2.el6.x86_64).
Temporary solution.
In order to fix it add "-Xss2m parameter into the Java Virtual Machine configuration file:
- conf\jms-ta-distribution\etc\JVM_Options.jvmopts - for the JMS Transport Adapter
- conf\amqp-ta-distribution\etc\JVM_Options.jvmopts - for the Rabbit MQ Transport Adapter
Documentation
- ICE Trade Capture FAQ page has been added to help with addressing most common questions related to ICE Trade Capture Solution
- FIXEdge readiness to the challenges on the front of the cybersecurity has been described in FIXEdge Security Assurance article
FIXEdge 6.2.0 Release Notes
FIXEdge 6.2.0 released on June 23, 2017
New Features and Improvements
Latest FIX Antenna C++ under the hood:
- FIXEdge has been built with FIXAntenna 2.20.0 with changed logging format for a number of cases. See FIX Antenna C++ Release Notes for more details.
MIFID II support:
- Timestamps with increased precision can be validated in incoming messages (for UTCTimestamp, UTCTimeOnly, TZTimestamp, TZTimeOnly formats)
- Timestamps in SendingTime (52), OrigSendingTime (122) are filled with configurable precision (per-session configurable property)
- BL CopyField action has been enriched with methods intended to receive messages from the session with one timestamp precision and send to the session with another timestamp precision
- JavaScript functionality has been extended with getNSec, setNSec, changeNSec to support high-precision timestamps
Please note that even though FIX Antenna C++ and FIXEdge support high precision timestamps the real accuracy of timestamps is limited by the operation system and hardware.
For more MIFID II compliance details see https://www.b2bits.com/consulting/regulatory/mifid-ii.html.
Extension Packs:
- FIX 5.0 SP2 dictionary has been updated with 217-228 Extension Packs.
- RabbitMQ Adaptor functionality has been extended with "ExchangeName" and "Addresses" configuration parameters. Check RMQ Transport Adaptor Installation Guide for details.
- The latest version of FIXICC 2.10.7 comes with the FIXEdge.
Others:
- Validation rules for time-related js-functions have been improved. See BL Scripting with JavaScript#AdditionalDateoperations for details.
Critical bugs and fixes
- FIXEdge cannot be started on Linux if directory name contains spaces
- FIXEdge cannot be started If two same sessions are listed in session list in config file
- CME STP Transport Adaptor: FIX session can't connect to FIXEdge after several FIX session's simultaneous logout
- FIXEdge crashes if JavaScript functions are used incorrectly .
- FIX dictionary for FIX 5.0, 5.0 SP1, 5.0 SP2: Tag CalculatedCcyLastQty (Tag = 1056) has incorrect requirement condition
Documentation
- CME STP Trade Capture documentation has been updated
- ICE Trade Capture documentation has been updated
Known issues
- Log Replicator incorrectly synchronizes logs if their timestamps precision is higher than a millisecond.
- CME STP Transport Adapter sends wrong LastUpdateTm value
FIXEdge 6.1.0 Release Notes
FIXEdge 6.1.0 released on March 31, 2017
New Features and Improvements
- FIXEdge has been built with latest FIX Antenna C++ Release (2.18.1)
- Environment variables can be used in FIXEdge.properties and engine.properties (not supported through FIXICC UI though)
Bugfixes
- RabbitMQ TA goes into infinite cycle
- RabbitMQ TA doesn't reconnect according to schedule
- RabbitMQ TA Consumer from group can't be created
- CME STP adaptor falls into deadlock, causing FixEdge to stop accepting connections.
- Logs are not deleted using FIXICC in Linux
- Memory leak in In-Memory History
- Memory corruption due to improper deinitialization of ODBC resources when working with ODBC History (postgresql specific)
Known issues
Since version 6.1.0 the JavaScript function getAsNumber works in another way in case the value can't be converted to a number. If previously it returned 0 if the whole string cannot be converted to a number, now it takes the substring till the first non-digit character and converts this substring. E.g. "20170321-05:00:00" is returned as 20170321 but not as 0 as it was in previous releases.
FIXEdge 6.0.0 Release Notes
FIXEdge 6.0.0 released on February 28, 2017
New Features and Improvements
Scheduler:
The following features have been introduced in session scheduler:
- ability to schedule the launch and termination of sessions at pre-defined times and dates;
- use CRON expressions for sessions schedule accurate to the second;
- ability to specify days off for sessions schedule;
- ability to specify time zone for sessions schedule;
- ability to assign one schedule to multiple sessions.
Guide for new functionality usage "How to upgrade Session Schedule to new format" and an article "Session Schedule Settings" with the description of all the new scheduler related properties are available in Products Knowledge Base.
Backward compatibility
FIXEdge 6.0 is backward compatible with the previous FIXEdge versions.
Critical bugs and fixes
The following bugs have been fixed:
- FE doesn't start if doesn't have permissions for logs folder.
- FE doesn't start when FIX50SP2EP is used as custom protocol.
- FE doesn't output an error message to Linux syslog if there is no space on the disk.
- Asynchronous connection for Initiator doesn't work in some cases.
FIXEdge 5.14.2 Release Notes
FIXEdge 5.14.2 released on December 29, 2016
Critical bugs and fixes
The following bugs have been fixed:
- Error on archiving logs (introduced in 5.13.0)
- Error on multiple open file descriptors (introduced in 5.13.0)
FIXEdge 5.14.1 Release Notes
FIXEdge 5.14.1 released on December 16, 2016
New Features and Improvements
Adapters:
- Path to TransportLayer.JMSTA.JVMOptionsFile has been unified for RMQ Transport Adaptor and JMS Transport Adapter.
- Compile- and run-time checks to detect buffer overflows (FORTIFY_SOURCE option of gcc compiler) had been enabled.
Critical bugs and fixes
The following bugs have been fixed:
- Adding of user with a subnet range of IP's within the "Source IP Address" field under the "Security" tab doesn't work in FIXICC.
- The second hidden tag is not masked in a logon message if the tags were divided by space.
FIXEdge 5.14.0 Release Notes
FIXEdge 5.14.0 released on November 23, 2016
New Features and Improvements
Adapters:
- New API to develop Transport Adaptors in Java has been added.
Refer to Universal Transport Adaptor Configuration for details.
- JavaScript performance has been improved by introducing JIT in 1.8.5 version of SpiderMonkey library (both Linux and Windows versions).
- CentOS 5/ RHEL 5 support has been discontinued.
Critical bugs and fixes
The following bugs have been fixed:
- FIXEdge application log rotation doesn't apply correctly in Windows system.
- Several milliseconds delay may occur during session destroying when terminated non-gracefully.
FIXEdge 5.13.0 Release Notes
FIXEdge 5.13.0 released on November 17, 2016
New Features and improvements
Protection mechanism
- FIXEdge detects and recovers broken storage on startup.
Refer to Recovery procedure for a session with corrupted storages. - FIXEdge prevents corruption of history, configuration and properties files during a failure.
- Ability to convert custom dictionaries has been improved: 'Convert' action in BL rules supports custom dictionaries conversion.
Critical bugs and fixes
The following bugs have been fixed:
- Default value of HBI does not apply for Initiator.
- FIX connection reject reason does not log for Acceptor.
- JS function 'setNumField' doesn't process negative argument.
- Incoming message considers as garbled in specific conditions.
FIXEdge 5.12.2 Release Notes
FIXEdge 5.12.2 released on October, 18, 2016
New Features and improvements
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 made configurable from FIXICC UI.
- CME STP polling interval has been fixed according to CME requirements.
Documentation
- "How to save session state to History" article has been published.
FIXEdge 5.12.1 Release Notes
FIXEdge 5.12.1 released on September, 16, 2016
New Features and Improvements
Adapters:
- RabbitMQ Transport Adapter has been added.
FIXEdge 5.12.0 Release Notes
FIXEdge 5.12.0 released on August, 16, 2016
New Features and Improvements
The property for limitation of number of incoming simultaneous connections that haven't sent logon message yet from one host has been added (5 connections by default).
- The property for limitation of connection time for an incoming connection that hasn't sent logon message yet has been added (5 seconds by default).
- The property for limitation of the maximum size of the buffer of incoming messages has been added (no limitation by default).
CPU usage on receiving large messages (for messages greater than 64 KB) has been reduced.
Please see How to configure TCP protection in FIXEdge article for details.
Throttling or Overload protection mechanism
- Added FIXEdge session property OutgoingQueueSize for monitoring of outgoing queue
- Added FIX Edge session property IncomingThroughputLimit for monitoring of incoming throughput
- Added FIXEdge session property IncomingMessagesLimit for monitoring of number of messages received during a session
Please see Overload protection in FIXEdge article for more details.
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).
- JavaScript perfomance has been improved by introducing JIT in 1.8.5 version of SpiderMonkey library (only windows version of FIXEdge).
Adapters:
- The ability to prevent message loss in MQ TA and reduce the number of messages in transaction to meet MaxUncommittedMsgs limit in MQ queue manager has been added.
- Filters that allows to make a decision how to handle incoming messages has been added to MQ TA.
Other improvements:
- Error description for fast mapping has been improved.
- DisableTCPBuffer has become the alias for TcpBufferDisabled property.
Critical bugs and fixes
The following bugs and vulnerabilities have been fixed:
- FIXEdge works wrong with absolute paths in FIXICC.PIDFile property.
- FIXEdge doesn't start if a session from Sessions list is not described.
- FIXEdge crashes when addressing to the non-existent tag in the repeating group.
- FIXEdge connects to primary connection even if ActiveConnection = backup.
- FIXEdge unable to recover availability after the limit of file descriptors was reached in Linux.
Property Validation.ProhibitDuplicatedTags = true wasn't applied.
FIXEdge hangs when the path in FixLayer.FixEngine.Sessions.ArchivePath is invalid.
- FIXEdge logs wrong boolean values in JavaScript.
FIXEdge 5.11.3 Release Notes
FIXEdge 5.11.3 released on June, 7, 2016
New Features and improvements
- Starting from FIXEdge 5.11.3 (with FIXICC 2.9.16) FIXICC and FIXICC Agent don't require the license file
- Defining the IP addresses range in the FIXEdge.properties file using CIDR
Critical bugs and fixes
The following bugs have been fixed:
- The comma separated IP addresses white list doesn't allow connecting to the session
- MQ Transport Adaptor routes incoming messages to error queue when FE is shutting down
- Tag 122 in Sequence Reset (4) message should be same as tag 52 (including milliseconds)
- MQ TA waits recv timeout before pass partial batch to BL
FIXEdge 5.11.2 Release Notes
FIXEdge 5.11.2 released on March, 16, 2016
New Features and improvements
- FIXEdge SDK package for creation custom Handlers and Transport Adaptors has been added
- The Transform attribute TargetProtocol supports the same format as Session's Version property
Critical bugs and fixes
The following bugs have been fixed:
- Wrong behavior of the session while reconnecting
- FIXEdge may delay processing messages with low number of workers under the high load
- FIXEdge doesn't start when using the absolute path in Log.File.Name
- FIX 4.4 Session Level Reject messages are generated with trimmed fields
- Receiving a Logon message can lead to FIXEdge crash during Session termination
- FIXEdge session's property TerminateTime is interpreted as UTC time
- FIXEdge crashes on the JMS Transport Adaptor shutdown
- JS element Transform fails if the source message is Logon
FIXEdge 5.11.1 Release Notes
FIXEdge 5.11.1 released on February, 10, 2016
Critical bugs and fixes
The following bugs and vulnerabilities have been fixed:
- FIXEdge can't be re-started using FIXICC
- Denial of service in handling of invalid message types
- Exploit protections have been improved using advanced features provided by modern C++ compilers
- CreateReject RejectType="application" creates Execution Report with wrong values
- Impossible to read a group size field with getNumField method from JS script which is used in BL rules of FE
FIXEdge 5.11.0 Release Notes
FIXEdge 5.11.0 released on December 4, 2015.
New Features and improvements
- The ODBC history performance has been increased up to 4 times
- Processing of FIX versions in admin protocol has been added
- Reconnection of FIX Initiator session is allowed if SSL is used
- The record about using the SSL connection file has been added in the FIXEdge.log
- Support of SSL in FIX backup connections has been added
- JRE 1.8.0_65 has been added to the Linux package
- Cleaning script FixEdge1.clean.sh now removes _fixedge.lock file
- The latest version of FIXICC (2.9.4) has been added to the FIXEdge package
- JS to the ODBC history interface has been improved
- Thread affinity feature which allows setting CPU affinity for different threads has been added for performance tuning
- Paths to PID file (FIXICC.PIDFile in FIXEdge.properties and PidFile in agent.properties) were made optional to simplify configuration files
- The name of the directory with FIXEdge instance has been changed from FixEdge1 to FIXEdge1
Documentation
- "How to create FIXML message with repeating groups using XSLT" article has been published
Critical bugs and fixes
The following bugs have been fixed:
- Working FIXEdge as NT service with absolute paths in FIXEge.properties
- FIXEdge with CME STP adaptor crashes on shutdown
- Incorrect handling timezones in JMS TA
- Decoding boolean fields in incoming FAST messages in CQG MD Adaptor
- Processing <ActiveConnection> parameter
- Establishing the session with parameter "HandleSeqNumAtLogon=true"
- ICE Trade Capture Handler should allow establishing subscription with start date going up to 48 hours back in history
- First message wasn't sent to IBM MQ TA after IBM MQ TA restart
- Obsolete Currency tag(15) value for Turkish Lira in FIX dictionaries
- MQ Client recovery removes messages of other MQ clients until restart
- IBM MQ TA stops too long time
- FIXEdge crashes in case of a huge size value of some repeating group field
FIXEdge 5.10.1 Release Notes
FIXEdge 5.10.1 released on September 1, 2015.
New features and improvements
- Enhanced security due to unconditionally encryption of password data in Logon message
- Added support of SSL to IBM MQ Transport Adaptor
Business Layer
FIXEdge 5.10 Release Notes
FIXEdge 5.10 released on 22 June, 2015.
Tools
New Features and improvements
- Separate port for admin session in FIXEdge
- Logging of IP address of incoming connection has been added
- Customization of interpretation Length fields for fields of type data has been introduced
Documentation
- "FIXEdge Failover Cluster installation" guide has been added
Business Layer
- JS function serializeMessage has been added to get the string representation of a FIX message in JavaScript
- Authentication of FIX session through LDAP has been added: LDAPAuthenticate condition statement in BL
Critical bugs and fixes
- The following critical bugs have been fixed:
- FIXEdge consumes a lot of memory
- Memory leak during processing the Business Layer Rules element "Action"
- FIXEdge crashes when receiving TradeCaptureReport from CME STP
- Errors when FIXEdge and FIXICC are installed into a path which contains spaces
FIXEdge 5.9.1 Release Notes
Critical bugs and fixes
The problem with establishing SSL connection from first attempt has been fixed
- The bug with long time FIXEdge starting in case there are large session logs has been fixed
- Memory leak in Business Layer has been fixed
FIXEdge 5.9.0 Release Notes
FIX Layer
- Based on new high performance version of FIX engine: FIX Antenna 2.13
- SSL support for FIX sessions has been implemented.
- Session properties 'ReconnectMaxTries', 'ReconnectInterval' have been added.
- Session properties 'Backup.ReconnectInterval', 'Backup.ReconnectMaxTries' have been added
- Ability to connect FIX Initiator sessions one by one with configured interval has been implemented.
- Different folders for backup sessions and FIX Edge backups has been configured. 'ArchivePath' property for FIX Edge backup folder has been added.
Business Layer
- New BL actions <StartSession> <DisconnectSession> <TerminateSession> and JS functions startSession disconnectSession terminateSession have been added.
Handler Layer
- ICE Handler
- The configuration option allowing to request security definition once a day has been added
Transport Layer
- CME STP Transport Adaptor
- Support of TLS 1.2 has been added
- Support of snapshot request (SubReqTyp=0) has been implemented
- Support of filters by Instrument, Date (trading or clearing), Input Source and Trade ID/Secondary Trade ID has been implemented.
Critical bugs and fixes
- Fatal error in CH Transport Adapter when disconnecting FIX session has been fixed.
- Fatal error in JMS Transport Adapter when stopping FIXEdge has been fixed.
- Fatal error in FIXAntenna when switching to backup connection at session start has been fixed.
- Fatal error in Transform Action execution has been fixed.
- Bug "FMXML handler doesn't work with FIX5x messages" has been fixed.
- Wrong interpretation of Linux freeTDS ODBC driver answer SQL_NO_DATA as error has been fixed.
- Bug "Logs of backup FIX session are not moved to archive" has been fixed.
- Bug "Fix session loads old logs at late start" has been fixed.
FIXEdge 5.8.2 Release Notes
Bugfix release.
Fixed bugs:
[FAST Decoder] crash on FAST message decoding if the message does not match FAST template.
- [FAST Decoder] FAST templates with ID but without tag 35 are ignored now
- [FAST Decoder] Check of length of string field in input stream that will be converted to char has been added
- [FAST Decoder] Check of length of integer field in input stream has been added
- [FAST Decoder] Mapping of FAST string to FIX LocalMktDate has been added
- [FIX Dictionary] Overriding of attribute 'name' in FIX message definition in additional FIX dictionary has been implemented
- [ICEHandler] An option to request security definitions only once a day regardless of FIXEdge restart has been added
- [ICEHandler] An option to reconnect all sessions to ICE in a defined interval between each other (as required by ICE) has been added
FIXEdge 5.8.1 Release Notes
Bugfix release.
Fixed bugs:
[CME CT API] Bug fixes for new fields support. CME Handler is able to process the following new tags in Trade Capture Report message:
<TrdCaptRpt>: AvgPx, TradeType, TradeSubType, TotNumLegRpts
<RptSide>: AllocID, <RegTrdID> (including ID, Src, Evnt, Typ, LegRefID, Scope)
<Alloc> extended with allocation specific ID, Src, Evnt, Typ, LegRefID, Scope
[CME CT API] Fixed storing to CME_SideRegIDs table
- [FAST Sessions] Checks for string length for mapping fast string->char has been added
[FAST Sessions] Deadlock in onLogoutEvent of FAST session has been fixed
- [FAST Decoder] Access violation error has been fixed
[JSDateEntity] additional validations for input parameters have been added
- [JSDateEntity] The issue with incorrect time handling in case of Daylight Saving Time is present in local time zone has been fixed
FIXEdge 5.8.0 Release Notes
New Interfaces to Chicago Mercantile Exchange (CME) APIs
- CME STP API
- CME Confirm Hub API
These APIs are in addition to the existing interface to CME Cleared Trades API, which has been also renovated to provide extended flexibility.
Trades from these API can be either routed to a FIX session or saved to a Database. Routing to all available middlewares (IBM MQ, TIBCO, JMS) is also supported both in FIX and FIXML (or other XML) format
FIX Layer
- Certification with London Metal Exchange (LME) has been passed.
- Use of custom FIX protocols and dialects in FIX sessions has been reworked to provide easy and flexible configuration
Sending Username and Password in Logon message when BackupConnection is used has been implemented.
Support of UsernameTag and PasswordTag has been implemented (for Active and Backup connections).
Business Layer
- Embedded JavaScript: getSourceSessionId() function has been added.
Package, documentation and logging
- Linux installation guide has been updated
- JMS Transport Adapter installation guide has been updated.
- Deployment on CentOS / RedHat Linux has been simplified by removing several steps
- FIXICC Agent has been embedded into Linux package
- FIXEdge logs have been made configurable to address the demand of integration with logs parsing and monitoring systems. Logs format is now can be configured similar to Log4j/Log4net logging.
- FIXEdge SDK for Transport Adaptors development has been released
Critical bugs and fixes
- Memory leak in Bridge Transport Adaptor has been fixed.
- Fatal error when stopping FIXEdge with JMS has been fixed.
FIXEdge 5.7.0 Release Notes
Package and documentation
- Improved Windows installer interface
- FIX Integrated Control Center was equipped with own local instance of Java
- Improved documentation
Transport Adapters, Handlers and FIX routing
- Added FMXML handler and Splitter Transport Adapter for fast XML<->FIX transformations
- Introduced Tibco RV Transport Adapter for Linux
- Improved performance on XSL transformation (up to 40%)
- Introduced CME MS Handler for polling CME ClearedTrades
- Improved IBM MQ Transport Adapter: stability, using MQ transactions to improve performance
- Actualized samples for Simple Sockets Transport Adapter
Monitoring parameters in FIXICC for handlers / transport adapters
Introduced ability to monitor and configure parameters of the following Handlers and Transport Adapters
- FMXML handler
- HTTPS Transport Adapter
- CME MS handler
- Splitter Transport Adapter
- IBM MQ Transport Adapter
Critical bugs and fixes
- [BBP-2063] FIX field's length in ODBC history
- [BBP-1691] Error while parsing FIXML message from CME (CME Handler)
- [BBP-1844] Session does not start at configured StartTime
- [BBP-1639] - Due incorrect link to pid file FixEdge1.stop.sh script can't stop FE.
- Fixed many issues with date / time conversions
- Fixed memory leaks in InMemory History
- Added flag /GS to compiler on Windows: Stack buffer overrun detection
FIXEdge 5.6.2 Release Notes
Bugfix release.
Fixed bugs:
- [BBP-1844] Session does not start at configured StartTime
FIXEdge 5.6.1 Release Notes
2013-10-29
Bugfix release.
Fixed bugs:
- BBP-1639 Due incorrect link to pid file FixEdge1.stop.sh script can't stop FE