FIXEdge Release Notes

FIXEdge 6.17.1 Release Notes

FIXEdge 6.17.1 is released on  

New Features and Improvements

  • The REST Initiator Transport Adapter (TA) now includes the "Content-Type" header for outgoing HTTP messages. This enables better interoperability with external systems by specifying the format of the message body, such as JSON or plain text.
  • Upon detecting specific IBM MQ response codes (2202, 2203, 2162, 2521), the FIXEdge IBMMQ TA will now temporarily disconnect and automatically reconnect, minimizing disruptions and ensuring smoother operations. 
  • This release enhances the FIXEdge Universal TA by improving the logging granularity. Low-level debugging messages related to getMonitoringParameters()and send() operations are now logged at the TRACE level, reducing log noise and making it easier to focus on critical information.
  • In FIXEdge Universal TA, the log category naming convention for JNI_WRAPPER is updated to replace the space character as a separator with a dot, making it easier to parse and analyze log messages(e.g., "JNI_WRAPPER TransportLayer.CamelTA" will now become "JNI_WRAPPER.CamelTA" ).

Fixed Bugs

  • This release prevents server crashes that occurred when multiple sessions were scheduled for frequent reconnection.
  • Fixed a deadlock that may happen if multiple sessions are updated at the same time.

FIXEdge 6.17.0 Release Notes

FIXEdge 6.17.0 is released on  

New Features and Improvements

  • New Direct Database API (DDBAPI). With DDBAPI, customers can now execute custom SQL queries directly from the FIXEdge JavaScript execution environment, retrieve and process data from external databases.
  • Introduced new SourceIPAddress REST Acceptor TA parameter providing the ability to filter IP addresses on the REST Acceptor TA.
  • FIXEdge can now find records in the CME Keys file by either Session ID or SenderCompID.
  • This release introduces the setSessionSeqNums() function, which simplifies sequence number management during CME failover events.

Fixed Bugs

  • This release addresses an issue where setting sequence numbers using FIXICC impacted subsequent session startup.

FIXEdge 6.16.1 Release Notes

FIXEdge 6.16.1 is released on  

New Features and Improvements

  • Enhanced IBM MQ Transport Adapter (TA) log files to include timestamps for log entries.
  • Introduced new SendForceCommitTimeMs and ReceiveForceCommitTimeMs IBM MQ TA parameters to periodically force commits on open transactions, ensuring timely message processing without dependency on batch completion.

Known Issues

This release introduces changes that impact backward compatibility with previous versions.

It's recommended to archive or remove older IBM TA logs from the Storage Directory before performing the upgrade to mitigate potential IBM TA malfunctioning.

FIXEdge 6.16.0 Release Notes

FIXEdge 6.16.0 is released on  

New Features and Improvements

  • FIXEdge C++ now includes Apache Camel Transport Adapter (TA) in its package which extends FIXEdge’s capability to integrate with various external systems consuming or producing data.  For example:
  • Please note, that clients can also use other Camel components from the component list suitable for their ecosystem and business needs.

    You can find examples of Camel TA configuration in the /etc/fixedge/camel-ta-distribution directory of the FIXEdge C++ standard installation.

  • FIXEdge C++ now provides the ability to monitor server-level, session-level, and TA session-level live metrics.
    • The following server-level metrics can be monitored via FIXICC H2:
      • number of the received and sent messages
      • amount of the received and sent KBytes
      • incoming and outgoing messages rate
      • incoming and outgoing KBytes rate
      • CPU load
    • The following session-level metrics can be monitored via FIXICC H2:
      • number of the received and sent messages
      • amount of the received and sent KBytes
      • incoming and outgoing messages rate
      • incoming and outgoing KBytes rate
      • depth of the outgoing queue
    • The following TA session-level metrics can be monitored via FIXICC H2:
      • number of the received and sent messages
      • amount of the received and sent KBytes
      • incoming and outgoing messages rate
      • incoming and outgoing KBytes rate
  • The new OnSessionLevelRejectWithSeqNumTooHighEvent event is added on BL. FIXEdge C++ launches this event when the Reject(35=3) message is received with the MsgSeqNum(34) tag value higher than expected.
  • FIXEdge C++  is integrated with Prometheus. This connection is configurable via the .properties file.
  • FIXEdge C++ now provides the ability to configure the DaysOff property for Kafka TA. This property defines the date and/or time when the ConnectTime and DisconnectTime properties configured for the Kafka TA session are ignored/not applied. The DaysOff property must be specified in the CRON format. Several CRON expressions separated by the ";" can be defined as values for the DaysOff, ConnectTime, and DisconnectTime properties for Kafka TA.

Fixed Bugs

  • Fixed the issue when events from the old schedule could occur unexpectedly after the Scheduler replacement.

Other Changes

  • FIXEdge C++ is built against Apache Log4j 2.21.0.
  • Oracle JDK support for Linux.
  • FIXEdge C++ supports Java Runtime Environment (JRE) version 401.

FIXEdge 6.15.5 Release Notes

FIXEdge 6.15.5 is released on


Minor release providing bug fix requested by client.


Fixed Bugs

  • Fixed the issue when FIXEdge C++ couldn't correctly handle FIX sessions state if these sessions were configured using the credential provider bash script.

  • Fixed the issue when the FIX session configured on the FIXEdge C++ server could not be restarted via FIXICC H2.

FIXEdge 6.15.4 Release Notes

FIXEdge 6.15.4 is released on .

New Features and Improvements

  •  Ability to export Username and Password values from Key Vault.

    FIXEdge C++ now provides the ability to export the Username and Password property values from the vault using scripts. This can be achieved by defining these properties in the FIXEdge.properties file in the following format:

    • FixLayer.FixEngine.Session.<Session_Name>.Username = script://@[timeout=<value>, trim]<path_to_script>
    • FixLayer.FixEngine.Session.<Session_Name>.Password = script://@[timeout=<value>, trim]<path_to_script>

    Where

    • timeout - is an optional attribute that defines the time interval to wait for successful script execution. If this attribute is not defined, then 5 sec will be used by default.
    • trim - is an optional attribute that defines whether values returned by the script should be trimmed. If this attribute is present, then the line break symbol will be deleted from the Username and Password values received from the vault.
    • path to script - path to the script that will be used to get credentials from the vault. If the path is relative, it must be relative to the current working directory.

    This feature additionally allows the execution of procedural scripts, if necessary.

Fixed Bugs

  • Fixed the issue when FIXEdge C++ crashed on exit or BL rules reload in case there is an ODBC history configured, the stored procedure is used to insert records and at least one record was inserted.

FIXEdge 6.15.3 Release Notes

FIXEdge 6.15.3 is released on .

Transport Adapters Improvements

  •  JMS TA is upgraded to 1.3.10 version.

    The PersistentInMemoryQueue queue used by JMS TA now keeps queued messages only in file storage, without parallel storing in memory.

    To enable this behavior the TransportLayer.JMSTA.Client.[ClientName].QueuePersistent property must be set to 'true'.

FIXEdge 6.15.2 Release Notes

FIXEdge 6.15.2 is released on .

New Features and Improvements

  • The ability to set AsyncProcessing and AsyncProcessingQueueSizeLimit session parameters via AdminREST API.

Other Changes

  • JRE is updated to the 1.8.0_371 version.

Dictionaries Update

Fixed Bugs

  • Fixed the issue when FIXEdge C++ stopped messages processing when the logs archiving could not be performed for the session started by schedule.
  • Fixed the issue when the ConfiguredName session property was not applied in some execution paths and the session was created via RESTAdmin API.

FIXEdge 6.15.1 Release Notes

FIXEdge 6.15.1 is released on .

New Features and Improvements

  •  SQLiteHistory providing the ability to store messages in the SQLite database.

    The new SQLiteHistory providing native support for the SQLite database was implemented.

  •  The ability to store incoming FIX messages in a separate file for each IBM MQ TA session.

    IBM MQ TA now provides the ability to define whether incoming messages from IBM MQ that were correctly parsed and routed to BL will be stored in the MQ-<ClientID>-Incoming_<Timestamp>.out file.

    To enable this behavior the optional LogIncomingMessages parameter must be set to 'true' for the IBM MQ TA session.

  •  The ability to define messages data format for IBM MQ TA sessions.

    IBM MQ TA now provides the ability to specify the format in which data should be sent to IBM MQ.

    The new MessageDataFormat property currently supports two values: MQFMT_NONE and MQFMT_STRING.

Other Changes

  • IBM MQ client is updated to the 9.3 version.

FIXEdge 6.15.0 Release Notes

FIXEdge 6.15.0 is released on .

New Features and Improvements

  •  FIX-to-JSON and JSON-to-FIX conversion.

    JSONMapping Handler is a FIXEdge plugin that performs the following functions:

    • Converts any FIX message to JSON and stores it to XML message (MsgType = n) or any other message type of the user's choice.
    • Converts any JSON message contained in XML message (MsgType = n) or any other message type back to FIX message.

    Please refer to the JSONMapping Handler page for more details.

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

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

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

  •  Throttling of incoming messages.

    FIXEdge C++ provides the ability to configure a throttler to control incoming messages' speed.

  •  The filenames of the schedule .properties and .timeline files were changed.

    FIXEdge C++ now creates schedule .properties and .timeline files with the filenames containing both encrypted in base64 and unencrypted <Schedule_Name> or <SenderCompID-TargetCompID-SessionQualifierValue> string. The following special symbols will be replaced with the "_" for the unencrypted string on file creation:  \/:*?"<>| #%&{}$!'@+`=.

  •  Logging of applied version of the parser was improved.

    The applied parser is logged as a general parameter on session start-up in the following format:

    applied ParserVersion = [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTOCOL1[,APP_PROTOCOL2...].

    Please refer to the ParserVersion page for more details.

ICE Trade Capture Solution Changes

  • DB scripts were updated to filter out trade duplicates. Duplicate checking should be done by checking the uniqueness of the values of the TradeDate (75), OrdStatus (39), ExecID (17), Symbol (55), Side (54), and ExecType (150) columns.

  • FIX dictionary was updated according to ICE Trade Capture 4.16.1 specification.
  • Support of all Allocation Report (35=AS) messages was added:

Please refer to the ICE Trade Capture Solution Upgrade Instruction page for more details.

Other Changes

  • The CustomLogonFileName property is deprecated. The CustomLogonMessageFileName property should be used instead.
  • FIXEdge C++ is built against OpenSSL 3.0.5.
  • FIXEdge C++ is built against Poco 1.12.2.
  • FIXEdge C++ is built against Xalan-C 1.12.0. 

Documentation Changes

Fixed Bugs

  • Fixed the issue when failed XSLT transformation wasn't handled on BL.
  • Fixed the issue when the send(<SenderCompID>, <TargetCompID>) JS function call in the CreateSessionEventevent prevented message delivery to FIX sessions.
  • Fixed the issue when FIXEdge C++ could not reconnect to Consul due to an unexpected timeout error.
  • Fixed the issue when the scheduler file could not be created if its name contained '=' or '\' symbols. These symbols are now being encoded in Base64.
  • Fixed the issue when FIXEdge C++ could not be started when the LogDirectory property was specified with Directory Junction link.

FIXEdge 6.14.3 Release Notes

FIXEdge 6.14.3 is released on .

New Features and Improvements

  •  The ability to clear old History records on BL rules reload was added.

    FIXEdge C++ provides the ability to clear old History records on BL rules reload.

    To use this feature the optional ClearOnLoad attribute must be set to 'true' for the History in the BL_Config.xml file.

  •  Creation of the new log directory for the session on FIXEdge C++ start was implemented.

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

FIXEdge 6.14.2 Release Notes 

FIXEdge 6.14.2 is released on .

New Features and Improvements

  •  The ability to use old parser tolerant to errors in FIX message structure was added.

    FIXEdge C++ provides the ability to use an old parser tolerant to errors in FIX message structure, including an incorrect number of elements in a repeating group, via еру NewFeatures.UseBackwardCompatibleParser = true.

  •  The ability to pass custom headers for JMS messages from BL was added.

    FIXEdge C++ allows passing headers for JMS messages in tag 91(SecureData) in SmartXML mode.

    To use this feature the following values must be set for JMS TA parameters: 

    • TransportLayer.JMSTA.Client.[ClientName].MessageType = Custom
    • TransportLayer.JMSTA.Client.[ClientName].CustomMessageType = com.epam.fe.converter.SimpleTextMessageWithHeaderConverter

    Please refer to the JMS Transport Adapter configuration page for more details.

  •  The filenames of the schedule .properties and .timeline files were changed.

    FIXEdge C++ now creates schedule .properties and .timeline files with the filenames containing both encrypted in base64 and unencrypted <Schedule_Name> or <SenderCompID-TargetCompID-SessionQualifierValue> string. The following special symbols will be replaced with the "_" for the unencrypted string on file creation:  \/:*?"<>| #%&{}$!'@+`=.

  •  New JS functions providing the ability to get the ParserID for the session were added.

    The following JS functions providing the ability to get the ParserID for the session were added: 

Other Changes

Fixed Bugs

  • Fixed the issue when FIXEdge C++ didn't process the custom Logon message filename passed from FIXICC H2.

FIXEdge 6.14.1 Release Notes

FIXEdge 6.14.1 is released on .

FIXEdge 6.14.1 is a minor release providing major bug fixes.

Fixed Bugs

  • Fixed the issue when JMS TA 1.3.5 could not establish an SSL connection with the Tibco EMS.
  • Fixed the issue when JMS TA 1.3.5 could not create a client via REST API.
  • Fixed the issue when failed XSLT transformation was not handled on BL.

FIXEdge 6.14.0 Release Notes

FIXEdge 6.14.0 is released on  

New Features and Improvements

  •  Throttling of outgoing messages was added.

    FIXEdge C++ provides the ability to configure a throttler to control outgoing messages' speed.

    Please refer to the How to configure FIX messages throttling in FIXEdge C++ for more details.

  •  The mechanism for handling insufficient disk space was added.

    FIXEdge C++ provides the ability to configure a mechanism for handling insufficient disk space.

    On session creation or switching to backup/primary connection, FIXEdge C++ will automatically check free space on the disk and if its amount is less than the value of Persistents.MinDiskSpace property, then FIXEdge C++ will not start a new session or will not switch to backup/primary connection. Also, FIXEdge C++ terminates the session if there is no free disk space left on the session's logs device.

    Please refer to the Insufficient disk space mechanism for more details.

  •  The ability to configure log storage directory for each FIX session was added.

    FIXEdge C++ provides the ability to specify different log storage directories for each FIX session via FixLayer.FixEngine.Session.Session_Name.LogDirectory property.  LogDirectory can also be specified for the backup connection of a particular session.

    Please refer to the Configuring FIXEdge.properties file page for more details.

  •  The ability to configure FIXEdge C++ and Consul connections via HTTPS was added.

    New functionality to restrict FIXEdge C++ access to Consul was implemented so each FIXEdge C++ instance can work only with selected data.

  •  Improved PersistentMM storage load speed on FIX session start.

    The new method of maintaining the log files in the PersistentMM storage for FIX sessions was added. It can be configured via NewFeatures.EnableOptimizedPersistentMMIndex property.

    If this property is set to 'true' FIXEdge will mark correctly stored log files with the 'stored correctly' flag in order to not perform a full storage check and improve performance.

    Please refer to the How to configure logging and logs rotation in FIXEdge page for more details.

  •  The ability to configure a backup connection with the same set of properties as a primary connection of the session was added.

    For primary connection the format is: FixLayer.FixEngine.Session.<Session_Name>.<ParameterName>.

    For backup connection the format is: FixLayer.FixEngine.Session.<Session_Name>.Backup.<ParameterName>.

    The following session parameters: SenderCompIDTargetCompIDVersionCustomLogonFileName, and SessionQualifierValue cannot be configured on a connection basis and always have the same values regardless current connection type used.

    Please refer to the Settings of Registered FIX Sessions page for more details.

  •  The ability to start FIXEdge C++ with the previously saved configuration was added.

    The ability to start FIXEdge C++ with the previously saved configuration without FIXICC H2 connection was added.

  •  Parametrization of BL rules was implemented.

    FIXEdge C++ provides the ability to reference parameters defined in the Condition or Action section of the BL rule from inside the script

    Please refer to the JavaScript reference to BL rule for more details.

  •  The behaviour of History-related JS functions was changed.
    • FIXEdge C++ provides the ability to create History without the ExpireDateTime column, in such a case ClearHistory procedure will be unavailable.
    • FIXEdge C++ provides the ability to call updateHistory() function with unspecified expireDateTime argument.
    • FIXEdge C++ prohibits to call saveOrUpdate() function with unspecified expireDateTime argument if behavior of the function is similar to saveToHistory() function.
    • FIXEdge C++ provides the ability to call saveOrUpdate() function with unspecified expireDateTime argument if behavior of the function is similar to updateHistory() function.

    Please refer to the History functions page for more details.

Transport Adapters Improvements

  •  The ability to create several instances of TAs without copying their shared libraries was added.

    FIXEdge C++ provides the ability to create several instances of TAs below without copying their shared libraries:

  •  The ability to configure TAs by unique ID instead of DllName was added.

    The FIXEdge C++ provides the ability to configure TAs below by unique ID instead of DllName:

  •  The ability to disable storage archiving and cleanup was added for Kafka TA.

    Storage archiving and cleanup will be disabled in case if archive directory is not set or is not accessible.

  •  The concept of string-to-string map was added as a part of FIX message processing.

    This map allows passing information between JS scripts within the same or across different BL rules matching the message.

    Three JavaScript functions were added: getCtxKV(key, [defaultValue]), setCtxKV(key, value), and delCtxKV(key).

    Please refer to the Operations with messages across BL rules page for more details.

  •  JMS TA was migrated to the latest version of Log4J.

    JMS TA was migrated to the latest Log4J 2.18.0 version.

API changes

  •  Authentification mode for FIXEdge Admin REST API was implemented.

    A FIXEdge administrator can specify credentials for Admin REST API in the FIXEdge configuration. In this case, the HTTP client must provide the credentials for all operations except health checks.

    Please refer to the Admin REST API authentication configuration page for more details.

FIX Protocol changes

  •  The 'FIXLatest' application version of FIX protocol was supported.
    • New value 10 = FIXLatest for 1128 and 1137 tags was added.
    • A new dictionary fixdiclatest.xml was introduced.
    • FIXT11 standard dictionary was updated to support FIX Latest version.
    • FIX Client Simulator sample was updated to support FIX Latest application version.
  •  Validation of 1137 and 1408 tags in incoming Logon messages was added.
    • Implemented support of CstmApplVerID (1129) tag when serializing/parsing FIX message to identify the FIX message dialect when non-default protocol dialect in the parser is used.
    • Implemented support of Added DefaultCstmApplVerID(1408) tag in Logon message when non-default protocol dialect in the parser is used as the default for FIX session.

    Please refer to Default custom version of the FIX protocol for the session and FixLayer.FixEngine.Session.Session_Name.Version pages for more details.

Other changes

  •  Reduced delay on FIX session restart.

    Reduced delay on FIX session restart, when session log files are being moved to the archive folder.

  •  Introduced new session EnableAutoSwitchToBackupConnection property.

    The session parameter CyclicSwitchBackupConnection was replaced with EnableAutoSwitchToBackupConnection parameter. The alias was added.

  •  New functionality in the ICE TC solution was added to obtain the market information on a scheduled basis.

    New functionality in the ICE TC solution was added to obtain the market information SecDef/UDS on a scheduled basis in CRON format.

Fixed Bugs

  • Fixed the issue when OnRuleFailEvent could not work with the original message in the Action section due to the inability to specify the actual SenderCompID and TargetCompID in the source session of the Rule and work with the original message in the Action section.
  • Fixed the issue when Scheduler generated ERROR when SenderCompID/TargetCompID contained space(s). Unique schedule's name generator for FIX sessions supports spaces and special characters in SenderCompID/TargetCompID now. 
  • Fixed the issue when the schedule's name in schedule properties/timeline files was not encoded in Base64.
  • Fixed the issue when XSLT transformation led to FIXEdge C++ crash if the zero-sized repeating group had entries.
  • Fixed the issue when FIXEdge C++ returned a non-empty "200" response for successful reload of the History. Admin REST API response on routing rules reload with history was changed: empty JSON array on success, otherwise the list of errors.  
  • Fixed the issue when FMXML Handler stopped processing messages due to an incorrect parsing mechanism for zero-sized repeating groups (<g453 v = "0"> or <g453>).
  • Fixed the issue when FIXEdge C++ didn't use the bin folder (on Linux) as a working directory for plugins.
  • Fixed the issue when FIXEdge C++ could not move logs to the archive folder in certain cases.
  • Fixed the crash in IBM MQ TA caused by an invalid value of the StorageDirectory property.
  • Fixed the issue when FEAdminConsole could not be run on CentOS 7. FEAdminConsole.sh script was added to start the FEAdminConsole CLI tool under Linux.
  • Fixed the issue when wrong behavior occurred on ClearHistory procedure call due to incorrect comparison of UTC and Local time in the File History.
  • Fixed the issue when the Reject message was generated in a wrong way if some required fields in the input message are missing.

FIXEdge 6.13.1 Release Notes

FIXEdge 6.13.1 is released on

FIXEdge 6.13.1 is a minor release providing major bug fixes.

Fixed Bugs

  • Fixed the issue when FIX message could not be stored in database using history configured in FIXICC H2.
  • Fixed the issue when FIXEdge could not connect to FIXICC H2.
  • Fixed the issue when FIXEdge could not load plugins if working directory for FIXEdge container was configured as incorrect absolute path different from 'bin'. FIXEdge now searches for plugins folder relative to 'bin' folder on Linux.

FIXEdge 6.13.0 Release Notes

FixEdge 6.13.0 is released on  

FIXEdge 6.13.0 provides compatibility with the recent version of FIXICC

New Features and Improvements

  •  Rule description field for a failed rule was added to the session event on BL

    Rule description field for a failed rule was added to the OnRuleFailEvent on BL.

  •  FIX Antenna doesn't create(reuses) new log files if there are no business messages in the logs.

    FIX Antenna doesn't create(reuses) new log files if there are no business messages in the logs.

    Please refer to the LogDirectory page for more details.

Transport Adapters Improvements

  •  RestAdmin API was enhanced with ability to Start and Stop Transport Adapters

    RestAdmin API was enhanced with ability to Start and Stop Transport Adapters:

  •  Monitoring of the dynamic state of the TAs was implemented

    Monitoring of the dynamic state of the TAs below was implemented:

Scheduler Improvements

  •  Asynchronous scheduled events execution on per-session basis was implemented

    Asynchronous scheduled events execution on per-session basis was implemented.

    The number of scheduler threads can be set with the new FIXEdge.Scheduler.Threads property. The default value is 2.

Other Changes

  •  An obsolete parameter was removed from BL rules files

    The MaxNumberOfRecords parameter that can be configured for ODBC history was removed from the BL_Config.xml file.

Fixed Bugs

  • Fixed the issue when JMS TA lost a message on the JMS broker connection breaking and the outgoing message didn't return to the outgoing queue.

  • Fixed the issue when the REST service was inaccessible until all JMS clients were created/connected. Connecting of JMS clients was implemented in a separate thread. 
  • Fixed the issue when FIXEdge could not find session storage on startup.
  • Fixed the issue when FIXEdge crashed while parsing long configuration data.
  • Fixed the issue when OnSessionLevelRejectEvent could not convert a Reject(3) message to Business Message Reject(j) for FIXT1.1 sessions.
  • Fixed the issue when there was different behavior on Linux and Windows platforms on stop of FIXEdge with messages stored in the asynchronous queue. Canceling of long-running JS scripts on FIXEdge shutdown was implemented.
  • Fixed the issue when the Session.Default.DisableTCPBuffer property was not working in FIXEdge. The TcpBufferDisabled property was removed from the FIXEdge. The TcpBufferDisabled alias was added for theDisableTCPBuffer property in FIX Antenna.
  • Fixed the issue when SequenceReset(4) message was sent in case of 789 tag presence. Processing of NextExpectedSeqNum(789) tag in logon message only in case when HandleSeqNumAtLogon mode is enabled was implemented.
  • Fixed the issue when the FIX session was destroyed due to simultaneous attempts to start it (by BL action or external command).
  • Fixed the issue when there was possible message loss during FIXEdge shutting down in case of the message was being processed with a long-running JS script.
  • Fixed the issue when SystemCommand BL operation failed due to the absence of the 1128 tag in the FIX message. The SystemCommand can handle FIXT1.1 messages from script files now.
  • Fixed the issue when there was an infinite error looping while trying to remove the logon timed-out socket if the DDoS protection was enabled and the network was dropped down.
  • Fixed the issue when the Kafka session could not be created if the ConnectTime property was set to "08", "09" etc. minutes. Cron expression parser accepts input of numbers starting with "0" now.
  • Fixed the issue when ResendRequest(2) message processing was interrupted if a validation error appears during the re-sending process. If the engine cannot re-send a message, then a GapFill is sent and the re-sending process continues now.
  • Fixed the issue when FIX Antenna didn't log dictionary loading error in the exception handler.
  • Fixed the issue when the saveOrUpdate JS script routine saved wrong non-null values to the ExpireDateTime property if the argument was empty.
  • Fixed the issue with the processing of the repeating groups with zero size in the FIX message.
  • Fixed the issue when text/html format was used instead of text/plain format in REST acceptor TA responses.

FIXEdge 6.12.0 Release Notes

FixEdge 6.12.0 is released on  

FIXEdge 6.12.0 release's scope includes FIX Antenna features and bug fixes from the upcoming FIX Antenna 2.29.0 which is going to be released in December 2021. Please refer to FIX Antenna 2.29.0 for more details.

New Features and Improvements

  •  Improved performance of File History messages cache

    Increasing the cache size value does not degrade performance when used to store in the cache feature.

  •  Implemented support of multiple hosts by administrative session SourceIPAddress parameter
  •  Implemented listen port configuration for administrative FIX session

    FIX Antenna:

    • Added the ability to set a specific port from the list for the administrative session.
    • Supported SSL connection. 

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

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

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

  •  Implemented notification in case of rejection of incoming messages at the session-level

    New Business Layer Event OutgoingSessionLevelReject was implemented in FIXEdge BL.

    Please refer to Element OnOutgoingSessionLevelRejectEvent page for more details.

  •  FIXEdge uses OpenSSL v. 1.1.1h and supports TLS v. 1.3

    The application uses OpenSSL v. 1.1.1h with static linkage and supports TLS v. 1.3 (the FixLayer.FixEngine.Session.Session_Name.SSLProtocols property).

  •  New bulk set routines to reduce number of JS-to-C++ calls
    • Added 'bulkSetStringField' method to BL JavaScript API
    • Added 'bulkSetStringFieldMapped' method to BL JavaScript API

    Please refer to Bulk operations with group fields page for more details.

Logging Improvements

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

    When a session is configured all FIXEdge specific parameters are printed in the log.

    ParameterCondition
    ProtocolAlways

    PredefinedMessages

    • PredefinedMessage.<Name>.Type
    • PredefinedMessage.<Name>.Direction
    • PredefinedMessage.<Name>.ApplProtocol

    Protocol = FIXT11_TCP

    The parameter is set

    FastTemplateFnProtocol = FIXT11_FAST_TCP
    FASTCodecParameters.BoolNtoStringProtocol = FIXT11_FAST_TCP
    FASTCodecParameters.BoolYtoStringProtocol = FIXT11_FAST_TCP
    EnableFastScp

    Protocol = FIXT11_FAST_TCP

    The parameter is set

    SenderCompIDAlways
    TargetCompIDAlways
    SessionQualifierValueThe parameter is set
    CustomLogonFileNameThe parameter is set
    RoleAlways
    RecreateOnLogoutAlways
    InSeqNumAlways
    OutSeqNumAlways
    ReconnectGroupThe parameter is set
    ResetSeqNumAtScheduledStartTimeAlways
    ActiveConnectionAlways
    IgnoreDuplicateResendRequestsThe parameter is set
    ResendMessagesLimitThe parameter is set
    TerminateOnLogoutAlways
    OutgoingQueueSizeAlways
    IncomingMessagesLimitAlways
    IncomingThroughputLimitAlways
    AsyncProcessingAlways
    AsyncProcessing.QueueSizeLimitThe parameter is set and > -1
    ScheduleThe parameter is set
    StartTimeThe parameter is set
    ConnectTimeThe parameter is set
    DisconnectTimeThe parameter is set
    TerminateTimeThe parameter is set
  •  Improved logging of assigned schedule parameters

    Parameters of assigned session (in a Cron-Like format) are printed in the log when a schedule is set for a session:

    • SessionName.Schedule = ScheduleName
    • ScheduleName.StartTime
    • ScheduleName.ConnectTime
    • ScheduleName.DisconnectTime
    • ScheduleName.TerminateTime
    • ScheduleName.DaysOff
    • ScheduleName.TimeZone
  •  Implemented logging of notification about parameter СonfirmingLogonStrategy=RejectLogout

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

    Please refer to ConfirmingLogonStrategy page for more details.

Transport Adapters Improvements

Fixed Bugs

  • Fixed the issue when the FIX session could not send a message during the Wait For Confirm Logout statement.
  • Fixed the issue when the messages' status in IBM MQ TA on FIXEdge termination was not updated to prevent sending duplicates on the next FIXEdge start.
  • Fixed compatibility issue with scheduling the session events in FIXEdge and running the child process.
  • Fixed the issue when the message could get into the default rule in case the session was destroyed within RESTAdmin API and the rule is matched with the session identifier.
  • Fixed the issue when FixAntenna stopped receiving messages after receiving a message with a seq number lower than expected.
  • Fixed the issue when the message had an incorrect header after conversion from FIXT1.1 to the FIX session on BL.
  • Fixed the issue when FIXEdge crashed because of an unsafe SSL implementation in the OpenSSL library. Rest Out TA now correctly handles simultaneous attempts to send a message to a single adapter instance.
  • Fixed the issue when FIXEdge crashed during saving data to MySQL DB with ClearTime configured. 
  • Fixed the issue when FIXEdge Admin API was unable to modify or assign a schedule to the FIX session. Implemented updating the session schedule on modifying the session via Admin REST API and getSchedule request handler in Admin REST API.
  • Fixed the issue when FIXEdge fell in an infinite loop if BeginSeqNo in ResendRequest message is greater than last SeqNum.
  • Fixed the issue in FIXEdge when the message was not converted from FIX4x to FIXT11 and could not be sent out of the managed queue due to missing tag 1128. Used the original parser and application version while restoring messages from the managed queue.
  • Fixed the issue in FIXEdge when the validation options were working differently for versions FIX 5.0 and FIX 4.4.
  • Fixed the issue when FIXEdge didn't apply KeepConnectionState and Qualifier properties from FIXICC H2.
  • Fixed the issue when the value of the ConfiguredName field was cleared after the attempt to create a session with the registered session ID.
  • Fixed the issue in FIXEdge when DestroySessionEvent didn't receive a Logout message with the full set of fields in case the session was an initiator of the disconnect process.
  • Fixed the issue in FIX Antenna when session didn't pass a Logout message in onLogoutEvent in case the session was an initiator of the disconnect process.
  • Fixed the issue when the OnActionFail event was not executed if the source of the rule was defined by the Name attribute.
  • Fixed the issue when FIXEdge runs DestroySessionEvent with trimmed Logout message (the message contains a base set of fields only) in case if counter-party sends Logout instead of Logon reply and the session's ConfirmingLogonStrategy is not "ConfirmLogout".
  • Fixed the issue when FIXEdge was terminated with the SIGSEGV signal.
  • Fixed the issue when reconnect mechanism didn't work for Tibco EMS connections.
  • Fixed the issue when there could be phantom connection rejects if the listening socket was already closed.
  • Fixed the issue when Logon Handler failed to load if the Description field was absent.
  • Fixed the issue when the default value of the Cleanup property was not applied if this parameter had an invalid value.
  • Fixed the issue when printing of multiply listening IP/port endpoints while the connection was failed to be accepted because of connection attempt to invalid IP/port for the session.

Dictionaries Updates

  •  Dictionaries are updated according to the last specification
    Improvements of ICE Trade Capture service version 4.14 and ICE Private Order Feed version 3.14 are supported.

FIXEdge 6.11.6 Release Notes

FIXEdge 6.11.5 is released on

FIXEdge 6.11.6 is a minor release intended to provide compatibility with the last version of FIXICC H2.

FIXEdge 6.11.5 Release Notes

FIXEdge 6.11.5 is released on

New Features and Improvements

  • An ability to disable/enable managed queues smart logic per session is implemented.
  • Smart logic while determining the FIX application version from the FIXVersion attribute is added. The attribute FIXVersion became compliant in FIX to FIXML converter output. 

Fixed Bugs

  • Fixed the issue when FIXEdge corrupted FIX messages if reject was generated under high load. Race condition in FIX session while processing the validation errors during high session load was fixed.
  • Fixed the issue when FIXEdge crashed during order cancellation processing without tag 11 in the managed queue. The crash in order cancellation processing in Managed Queue if the request had missing required fields was fixed.

FIXEdge 6.11.4 Release Notes

FIXEdge 6.11.4 released on   

Fixed Bugs

  • Fixed the issue when the JMS Producer lost messages during reconnection if it was unable to convert them to JMS Message objects.
  • Fixed the issue when the ManagedQueue erroneously sent out enqueued messages. A possible race condition during ManagedQueue initialization was fixed.
  • Fixed the issue when the validation of repeating groups could not be disabled. Checking repeating group bounds without at least one entry was made controllable with the VerifyRepeatingGroupBounds.

FIXEdge 6.11.3 Release Notes

FIXEdge 6.11.3 released on   

Fixed Bugs

  • Fixed the infinite loop that occurred while handling an incorrect ResendRequest message.

FIXEdge 6.11.2 Release Notes

FIXEdge 6.11.2 released on  

The main feature of this release is compatibility with FIXICC H2 21Q2. Detailed info is located in the FIXICC H2 for FIXEdge C++ section of the Knowledge Base.

The FIXEdge Server now uses the updated version of FIX Integrated Control Center (FIXICC) (2.10.21) and all its features.

Fixed Bugs

  • Fixed the issue when the connection to REST Admin API with SSL/TLS security was impossible.

  • Fixed the issue when schedule name parameter is being ignored by FIXEdge while processing creates session request via FIX Admin session.
  • Fixed the issue when parameters IncomingMessagesLimit, OutgoingQueueSizeLimit, IncomingThroughputLimit are being ignored by FIXEdge while processing creates session request via FIX Admin session.
  • Fixed the issue when a session couldn't be created if it is configured to move logs.
  • Fixed the issue when the Logon Handler logged INFO-level instead of WARN for authentication failures.

FIXEdge 6.11.0 Release Notes

FIXEdge 6.11.0 released on  

The most important features of this release the ability to assign a dedicated listen port for an acceptor session or group of sessions and the ability to use QuickFIX formatted dictionaries, see below. 

The dedicated listen ports allow the user to restrict an incoming connection(s) 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 via the API.

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

The FIXEdge Server now uses the latest version of FIXAntenna (2.28.0) and all its features.

New Features and Improvements

  •  Added the capability to load FIX dictionaries in QuickFIX format

    FIXAntenna C++ now supports QuickFix dictionaries natively.

  •  Added the capability to support a custom symbol instead of SOH

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

    • |
    • ^
    • 0xAD
    • 0xF5

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

  •  Added the capability to dedicate listen port for FIX acceptor sessions

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

  •  Added the capability to capture the response from the RestOutTA and put it into the FIXEdge reject message

    Added the capability to return the response code and error text from the RestOut TA, and retrieve them on BL with JS functions getErrorCode(), getErrorText().

  •  Added the capability to re-send a message via the RestOutTA if the destination system returns an error

    Messages can be re-transmitted via the RestOutTA in case of errors from the counter-party for particular codes defined by the user.

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

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

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

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

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

  •  Added an option 'ConfirmingLogonStrategy' to control behavior when a logout is received instead of a logon
    Added the ConfirmingLogonStrategy session parameter. The list of strategies can be found herC
  •  Set the default value for DuplicateResendRequestLimit to 2

    Set the recommended value of DuplicateResendRequestLimit = 2 to the default in engine.properties. This option allows the FIX Engine to ignore duplicate resend request and respond to multiple similar resend request messages only once. See DuplicateResendRequestLimit for details.

    Set the recommended value of FixLayer.FixEngine.Sessions.DefaultIgnoreDuplicateResendRequests to true in default FIXEdge.properties.  This option allows to ignore resend request duplicates and responds on multiple similar resend request messages only once. 
    See DefaultIgnoreDuplicateResendRequests (link) and IgnoreDuplicateResendRequests (link) for details

  •  Removed vc10/gcc44 suffix from FIXEdge C++ components

    When upgrading the FIXEdge, check if vc10/gcc44 suffixes are used in libraries naming, those suffixes should be excluded if any. For instance:

    • Windows: XXX-handler-vc10-MD.dll --> XXX-handler-MD.dll
    • Linux: XXX-handler-gcc44-MD.so --> XXX-handler-MD.so
  •  Added the Logon Handler plugin

    Logon Handler plugin delegates FIX-session authentication to third-party systems. Communication with the third-party systems is done via BE/BF messages over the FIX protocol. See details.

  •  Built FIXEdge against openssl statically linked

    FIXEdge for Linux is built statically with OpenSSL 1.1.1h and doesn't use the system library now.

Changes in Kafka transport adapter:

  •  Kafka TA Graceful Termination by FIXEdge

    Implemented the graceful closing of the Kafka connections on stopping the FIXEdge instance.

  •  Kafka TA Scheduling

    Kafka TA has the ability to configure the session's schedule using `ConnectTime` and `DisconnectTime` parameters on a per-session basis now. The configured schedule will set the valid time interval for sending messages to Kafka instance/cluster and will not affect the availability of the session in FIXEdge's BL.

  •  Kafka TA multiple instances

    Added support for multiple Kafka TA instances in FIXEdge configuration.

  •  Kafka TA authentication

    Added support for SSL certificate authentication, PLAIN, and GSSAPI (Kerberos) authentication mechanisms in Kafka transport adaptor.

  •  Kafka TA handle a disconnection with Kafka broker

    Implemented configurable logic in Kafka TA to handle temporary disconnections to Kafka server.

  •  Kafka TA Monitoring

    Implemented the functionality in Kafka TA to allow monitoring of adaptor state and statistics through Admin interfaces.

  •  Kafka TA Data Transformation Result Logging

    Added logging for default data serialization in Kafka TA.

Changes in ICE Trade Capture Solution

  • Multiple FIX Sessions to ICE are now supported.
  • New Data Request Mode was implemented. Now it is possible to subscribe for Trades and Security Definitions simultaneously.

Logging Improvements

  •  Improved message reject reason for invalid repeating group size

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

  •  Improved license system message. Use INFO severity if 30 days remain.
    Previous message[WARN] <timestamp> <thread> [Engine] - The license for the '<company>' expires in 38 days. Please call +44 20 369-58-166 or contact us at SupportFIXAntenna@epam.com for further assistance.
    Current message[INFO] <timestamp> <thread> [Engine] - The license for the '<company>' expires in 38 days. Please call +44 20 369-58-166 or contact us at SupportFIXAntenna@epam.com for further assistance.
    [WARN] <timestamp> <thread> [Version] - The license for the '<company>' expires in 8 days. Please call +44 20 369-58-166 or contact us at SupportFIXAntenna@epam.com for further assistance.
  • Fixed the parser logic ignores the parameter 'VerifyReperatingGroupBounds' in some cases.
    Added alias 'VerifyRepeatingGroupBounds' for the parameter 'VerifyReperatingGroupBounds'(spelling fix).

Fixed Bugs

  •  MQ Transport Adapter doesn’t properly process FIX messages of FIX 50+ version if tag ApplVerID (1128) is not located after tag 35

    Fixed FIX standard violation when FIXEdge forces the ApplVer(1128) tag to appear right after tag 35

  •  FIX Antenna C++ doesn't validate ApplVer(1128) tag for FIX50SP2

    Fixed the application stops when the ApplVer(1128) tag is not set for SMH in the dictionary but the tag is present in a FIX message.

  •  The REST Initiator TA had been failing to generate reject message for FIX 50 session on unsuccessful send attempt

    Fixed reject message forming in case of FIX5.0+ protocols without ApplVer(1128) tag. RestOut Non-raw conversion can handle messages without ApplVer(1128) tag.

  •  FIXT11 session was not initialized due to last message parsing error

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

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

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

  •  FIXEdge does not close a session if NextExpectedSeqNum(789) tag in an incoming logon is higher than expected

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

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

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

  •  The property AllowZeroNumInGroup doesn't work in FIXEdge
    Fixed the AllowZeroNumInGroup property. It allows zero-sized repeating groups in incoming messages when set to true.
  •  Sending out messages from Managed Queue is delayed

    Fixed the performance issue in ManagedQueue on the Linux system by sending a large number of pending messages (>100k).

  •  FIXEdge gets deadlocked if Managed Queue is used by multiple sessions

    Fixed possible deadlock in ManagedQueue with multithreaded configuration and high message rate.

  •  "Reset Sequences" feature does not work if user starts session from FIXICC

    Now FixAntenna's API call `resetSeqNum` is available when an initiator session is in an `Initial`, `CorrectlyTerminated`, and `NonGracefullyTerminated` state. Being called, this method will schedule the next Logon message to contain ResetSeqNum(141)=Y tag, as well as a sequence, reset to be performed on the next logon.

  •  FIXEdge server stops while the TIBCO RV server is started or stopped

    Fixed a case when the TIBCO transport adapter sends to observer two logons (without logout) leading to an exception. Sending logon/logout is based on connection status instead of common demon status now.

  •  Only first the TIBCO client from clients property is created (CentOS 7 scecific)

    Fixed a case when the TIBCO transport adapter was unable to initialize properly if the connection establishes too fast.

  •  FIXEdge did not switch to backup connection due to error

    Fixed a bug that can cause a session to stop reconnecting attempts. Relevant for session initiator.

  •  The CME STP TA does not restore connection after the CME network interrupts

    Fixed reconnection on network interrupts and updating the session status in the CME STP transport adaptor.

  •  FIXEdge Admin REST API function service/started doesn't work when starts as windows service

    FIXEdge now will correctly initialize REST Admin API and Components API when started as a service on Windows.

  •  The Kafka TA does not start with the FIX 5.0 message in Kafka storages

    Fixed inability to load session storage in case of the storage's FIX protocol version requires to use of the FIXT1.1 transport protocol

  •  Kafka TA does not log requred error message, when producer can not queued message

    Fixed message text for "Error handling the outgoing message" in Kafka TA logging.

  •  FIXEdge stops when session started on bound port (CentOS specific)

    Fix the issue when FIXEdge stops when a listening port is already in use.

  •  Username/Password are still visible in Debug / Trace mode in FIXEdge.log file even with enabled HiddenLogonCredentials and MaskedTags

    Fixed hiding the logon credentials in FIXEdge and FIXAntenna log files.

  •  FIXEdge stops when the ICESession and ICESession.SenderCompID parameters are empty

    Fixed stops in FIXEdge when BL handler fails to initialize. The obsolete parameter ICESession parameter is removed from the ICEHandler.

  •  Service message is not routed from session to session(if one session use custom dictionary)

    Fixed default conversion of messages to/from custom FIX50 protocol while routing to FIX session.

  •  FIXEdge does not indicate bound port for session (Windows 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.

Dictionaries Updates

  •  Updated dictionaries according to the last specification (ICE Trade Capture 4.11, ICE Private Orders Feed 3.11)

    Recommendations about ICE Trade Capture DB Schema updates can be found here: ICE Solution DB upgrade procedures

FIXEdge 6.10.0 Release Notes

FIXEdge 6.10.0 released on Dec 17, 2020

The main feature of this release is a newly added Kafka transport adapter. It allows FIXEdge to route messages to/from the Kafka open-source distributed event streaming platform. See details.

Starting with this release we are discontinuing support of RHEL 6 since it came to the EOL. Currently supported platforms include RHEL 7 and Windows x64.

Additionally, this release has an average performance gain of about 10% in the scenario where FIXEdge converts messages from one protocol version to another.

New Features and Improvements

Changes in ICE Trade Capture Solution

  • A new "InsertionTime" column has been appended to all tables. This feature saves time on row insertion time. Data is formatted as follows "YYYY-MM-DD-HH:MM:SS.sss".
  • FIX dictionaries have been updated according to ICE specification (ICE Trade Capture 4.9)

Changes in ICE Private Order Feed Drop Copy Solution

  • FIX dictionaries have been updated according to ICE specification (ICE Private Orders Feed 3.9)

FIXEdge was extended with new transport adapter for Kafka

The Rest initiator/acceptor TAs now fully support FIX 5.0+protocols.

The Rest initiator TA adapter now supports re-sending messages when faced with errors from counter-parties for particular, defined by user, codes.

The package includes samples of the systemd unit files in the systemd-support/ directory

Fixed Bugs:

  •  The RestTA could not previously establish HTTPS connection along with the client's certificate validation

    The Rest acceptor TA now provides a list of Certificate Authorities allowed for client certificates in a CertificateRequest message on SSL handshake.

  •  JMSTA could not send extracted XML data from tag 213. Fixed property SmartXMLProcessing = true for JMS TA.

    Fixed property SmartXMLProcessing = true for JMS TA

  •  JavaScript function (save, update) couldn’t save 0 value inwhen there was a case of Numeric column type in BL.

    Fixed the bug due to which the Java script function saveToHistory was not able to parse a zero value "0".

  •  FE with MQ TA for Linux is building with 7 version of MQ SDK instead 8 (can lead to FE crash)

    MQ version on build machines was updated to V8.0.0.6

  •  [FE] Application level messages without tag 1128 are not processed if AsyncProcessing is enabled

    The bug has been fixed. Previously, when a session uses the FIXT11 protocol version and AsyncProcessing = true, it was still required to have the tag 1128 in messages. Now the session uses the version received from a Logon message and parses any massage without tag 1128.

  •  Rest Acceptor doesn't accept FIX messages with FIX Protocol FIX50+

    REST Acceptor TA now supports FIX50+ messages.

  •  [FE] FIXT11 Session was not initialized due to a last message parsing error.

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

  •  [FE Cpp]FE corruptes message after conversion in js

    Fixed a bug in BL Convert action that leads to duplication of custom tag values (i.e. tag number > 5000) to message root from 2+ level nested repeating groups

  •  MQ TA property SslKeyRepository did not work properly with a relative path

    MQ adapter now supports relative path in the SslKeyRepository property value

  •  ICE Trade Capture: Scripts are saving CurrentDate fields to DB in local timezones

    The application now uses UTC time zone to save date and time in the SQL database during message filtration.

Dictionaries updates:

  • CME STP FIX dictionaries include all changes up to Notice 20200505
  • FIX 5.0 SP2 dictionary has been updated with 258 Extension Packs.

Log replicator updates:


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

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 SessionsHow 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

Changes in ICE Trade Capture Solution

Changes in ICE Private Order Feed Drop Copy Solution

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

    • 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

    • Data Model was adjusted to store all the data coming in Allocation (35=J) messages
    • Message processing by JavaScript is implemented
    • 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

FIXEdge 6.7.0 Release Notes

FIXEdge 6.7.0 released on December 19, 2018

New Features and Improvements

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

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.

















2018-05-18 07:12:16,521 UTC ERROR [JNI_WRAPPER] 1095492 <reason>

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

ICE Trade Capture

  • 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 /wiki/spaces/EPMBFIXA/pages/6042728 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.
    See "How to upgrade" article by the following link: Pure installation of the new version of ICE Trade Capture solution.

IBM MQ Transport Adaptor

  • 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 Adapter 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 message2018-05-22 10:14:31,533 UTC INFO [JNI_WRAPPER] 11232 Timestamp not found in FIXML message.
Current message2018-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

ICE Trade Capture

  • 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

FIXICC

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 categoryOld formatNew CategoryNew format
Meaningless record has been removedINFO

[STPAdaptor] <thread> Received FIX Email message contains unknown sender name 'CMESTPFIX3:IRATFIRM', message was skipped. 



Severity has been changed, text has been changedERROR

[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 loggingINFO

[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 improvedERROR

[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 removedWARN

 [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 removedINFO

 [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 removedERROR [JNI_WRAPPER TransportLayer.RMQTA] <thread> Exception occured while executing TA getMonitoringParameters().

 

Experimental features:

Business Layer

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

Logging improvements

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

    MessageOld categoryNew categoryComment
    Session <sender, target> : Error during processing Logon message from 127.0.0.1:62358: Session is not waiting for connect: current state is <XXX>
    ERRORWARN
    transport is down - cancel requests, notify user
    INFO ERRORCME STP Transport Adaptor specific change



CME STP Trade Capture

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

ICE Trade Capture

  • 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


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:

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

RabbitMQ Transport Adapter 

FIXICC

  • The latest version of FIXICC 2.10.7 comes with the FIXEdge.

Others:

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

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:

  1. ability to schedule the launch and termination of sessions at pre-defined times and dates;
  2. use CRON expressions for sessions schedule accurate to the second;
  3. ability to specify days off for sessions schedule;
  4. ability to specify time zone for sessions schedule;
  5. 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:


Protection:

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

Performance:

  • JavaScript performance has been improved by introducing JIT in 1.8.5 version of SpiderMonkey library (both Linux and Windows versions).

Other features:

  • 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

Other improvements:

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

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

FIXEdge 5.12.1 Release Notes

FIXEdge 5.12.1 released on September, 16, 2016

New Features and Improvements

Adapters:

FIXEdge 5.12.0 Release Notes

FIXEdge 5.12.0 released on August, 16, 2016

New Features and Improvements

Protection from abnormal user behavior:

  • The property for limitation of number of incoming simultaneous connections that haven't sent logon message yet from one host has been added (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:

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

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

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

Business Layer

FIXEdge 5.10 Release Notes

FIXEdge 5.10 released on 22 June, 2015.

Tools

  • Log Replicator tool has been added to address replication of storage in failover cluster

New Features and Improvements

Documentation

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 sessio