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