Table of Contents |
---|
...
Table of Contents |
---|
FIXEdge Java 1.10.3 Release Notes
FIXEdge Java 1.10.3 is released on .
New Features and Improvements
Expand title The ability to create and use routing and event Groovy DSL BL rules. FIXEdge Java now provides the ability to create and use routing and event Groovy DSL rules on Business Layer.
Routing rules are the main elements in the FIXEdge Java configuration file. They contain instructions for:
- Routing of incoming and outgoing FIX messages.
- Filtering of incoming and outgoing FIX messages.
- Transformation of incoming and outgoing FIX messages.
More than one rule can be applied to a message. It is also possible to route one message to multiple destinations or to the same destination multiple times. All rules are applied to each FIX message independently in the order set in the configuration file.
Event rules are a special kind of business rule that handle events launched during execution. The following FIXEdge Java events can be processed:
- FixSessionStateEvent
- NewSessionEvent
- RuleErrorEvent
- ScheduleEndpointEvent
- SchedulerEvent
- SnfEvent
- UnprocessedMessageEvent
- Custom
Transport Adapters
Expand title Ability to configure and run WebSockets TA. FIXEdge Java now provides the ability to configure and run WebSockets TA.
WebSocket endpoints provide FIXEdge Java clients with the ability to establish a connection between the server-acceptor and client-initiator and then send and receive data from/to them. During start-up, FIXEdge Java initiates the Jetty server and endpoints defined in the websocket-adaptor.properties file: WebSocketServlets for acceptors and WebSocketClients for initiators. To add a new WebSocket endpoint to the websocket-adaptor.properties file, its configuration must be defined and its name must be added to the websocket.clients list.
FIX Protocol Changes
Expand title The 'FIXLatest' application version of FIX protocol. - 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 the FIXLatest version.
Expand title Validation of 1137 and 1408 tags in incoming Logon messages. - Implemented support of CstmApplVerID (1129) tag when serializing/parsing FIX messages to identify the FIX message dialect when non-default protocol dialect in the parser is used.
- Implemented support of DefaultCstmApplVerID(1408) tag in Logon message when non-default protocol dialect in the parser is used as the default for FIX session.
Other Changes
Expand title The separate licence for FIXEdge Java. FIXEdge Java now has a separate licence file that can be obtained upon request to the Sales team.
License information is stored in the fixaj2-license.bin file for FIXEdge Java versions earlier than 1.10.3. Since the FIXEdge Java 1.10.3 version, the license information is stored in the fixedgej-license.bin file.
Fixed Bugs
- Fixed the issue when SeqNums of the session were not displayed when it was stopped via FIXICC H2.
FIXEdge Java 1.9.1 Release Notes
January 27, 2021
New Features and Improvements
...
- Kafka endpoint had CONNECTED status even if the Kafka server isn't available.
- Problem description: Kafka clients, due to their nature, don't have a direct notification about the Kafka server availability. They can indirectly identify it only by the sending/receiving operations state.
- Solution: Kafka endpoint state is changed to RUNNING instead of CONNECTING. Additionally, it provides the last message sent/receive timestamp to identify the last successful operation time.
- REST API didn't provide statusGroup attribute for FIX endpoints.
- Problem description: Answers for "Get the list of all sessions" and "Get info on single-session" REST requests didn't include statusGroup attribute.
- Solution: The attribute was added.
FIXEdge
...
Java 1.9.0 Release Notes
Oct 11, 2021
New Features and Improvements
...
- Fixed validation of the incoming parameter during updating FIX session via REST API.
- Problem description: If the mandatory field like SenderCompID/TargetCompId is missed in the REST request, the FIX session was deleted.
- Solution: Added validation of incoming parameters. In case of an invalid request, the FIX session will not be changed.
- Kafka endpoint couldn't be started after stopping it via administrative API.
- Problem description: KafkaProducer instance isn't reusable after stopping it. It can't be restarted.
- Solution: Initialize a new instance of KafkaProducer during endpoint start
FIXEdge
...
Java 1.8.3 Release Notes
Aug 11, 2021
New Features and Improvements
...
- There is no ability to disable the BouncyCastle security provider.
- Problem description: The BouncyCastle security provider is used by Administrative Remote Shell CLI by default. There was no possibility to disable this security provider (if a user wanted to use their own).
- Solution: The option org.apache.sshd.registerBouncyCastle was fixed for disabling the registration of the BouncyCastle security provider.
- Remote Shell Command "server opts" prints invalid information about opened FIX ports.
- Problem description: "server opts" command output was corrupted.
- Solution: The command output was fixed to print a list of opened ports.
- JMS Producer doesn't reconnect automatically.
- Problem description: JMS Producer stopped reconnecting when an exceptional connection break occurred.
- Solution: The reconnect logic was fixed.
- Race conditions in JMS Producer after reconnect.
- Problem description: JMS Producer did the reconnect procedure in two separate threads and started two sending threads at the same time.
- Solution: The reconnect logic was fixed.
- Incorrect value for the QueueMaxFileSize property for JMS clients.
- Problem description: The QueueMaxFileSize property of JMS clients was initialized with a value from the QueueNormalFileSize property.
- Solution: The misprint in the code was fixed.
- The JMS Producer loses messages during reconnect.
- Problem description: The JMS Producer was occasionally losing messages when it wasn't able to convert them to a JMS Message object.
- Solution: The error handling logic was fixed.
- The JMS Producer started but is not operable if its queue file is corrupted.
- Problem description: The JMS Producer ignored problems with JMS queue initialization (queue file was corrupted). This led to the continuous problem with sending data by that Producer as data couldn't be added to the queue.
- Solution: The JMS Producer fails to start if it has problems with its initialization.
FIXEdge
...
Java 1.8.2 Release Notes
Jul 2, 2021
New Features and Improvements
...
- Freezing of FEJ REST Administrative API.
- Problem description: FEJ REST Administrative API could be frozen after subscription to the session list events.
- Solution: The problem was gone after replacing the Jersey/Netty REST service with an embedded Jetty server implementation.
- FEJ doesn't reconnect the JMS endpoint.
- Problem description: FEJ doesn't try to reconnect the JMS endpoint if the connection to the JMS broker is broken.
- Solution: The reconnect logic of the JMS Producer endpoint was fixed.
FIXEdge
...
Java 1.8.1 Release Notes
May 26, 2021
New Features and Improvements
...
- Message lost in JMS endpoint
- Problem description: One message is lost in case of a network interrupts between a broker and the JMS endpoint. The outgoing message wasn't returned to the queue inside the JMS endpoint due to a concurrency issue in this case.
- Solution: The queue implementation was fixed.
- A FIX acceptor session in the DISCONNECTED state could not be started or stopped.
- Problem description: If an acceptor session had been connected first and then a counterparty broke the connection, the acceptor got the DISCONNECTED state. Anyway, it wasn't possible to start or stop such a session via administrative APIs.
- Solution: Disconnected but not stopped acceptor session gets the WAITING_FOR_CONNECTION state now. Such an acceptor session can be stopped, it gets the DISCONNECTED state and stops accepting new incoming connections.
- A FIX acceptor session in the WAITING_FOR_CONNECTION state could not be reloaded.
- Problem description: An acceptor session in the WAITING_FOR_CONNECTION state could not be reloaded via administrative APIs due to a logical error.
- Solution: Implementation of a command for session reload was fixed.
- Messages lost after reloading an SnF session.
- Problem description: Messages from the SnF queue were not delivered after the FIX session reload. The problem was related to the SnF queue initialization and warm-up.
- Solution: The warm-up functionality for the SnF queue was temporarily disabled.
- The same JMS endpoint can be started multiple times.
- Problem description: Administrative APIs incorrectly validated an endpoint state.
- Solution: The state validation was fixed.
- JMS endpoint could not be stopped if automatic reconnect is enabled.
- Problem description: Auto-reconnect functionality for the JMS endpoint didn't count an endpoint state.
- Solution: Auto-reconnect functionality for the JMS endpoint was fixed.
FIXEdge
...
Java 1.8.
...
0 Release Notes
April 21, 2021
New Features and Improvements
- Automatic Start of endpoints
- Non-FIX endpoints (JMS, Kafka, and another) will be started with FEJ server initialization automatically. The automatic endpoint start might be changed via the
startOnload
property.
- Non-FIX endpoints (JMS, Kafka, and another) will be started with FEJ server initialization automatically. The automatic endpoint start might be changed via the
- Schedule endpoints start/stop within their configuration files
- There is no need anymore to define the schedule via the schdule.xml file. It can be done within the Endpoint configuration.
- The default configuration for groups of FIX sessions
- Configuration of FIX sessions may be grouped with folders and each folder may have a separate default configuration, common for all included sessions.
- Password obfuscation in FIX storages and application logs
- Secret information is masked inside persisted FIX sessions data (see
maskPasswordsInStorages
configuration option).
- Secret information is masked inside persisted FIX sessions data (see
- The single authentication mechanism for all administrative interfaces
- All users for different administrative interfaces are defined within the admin-users.properties file. Access to a specific interface is defined by a user role.
- RPM and DEB packages
- FEJ system configuration files are moved to a separate folder.
- System configuration files were moved into a separate folder (sysconf) for further easier FEJ server maintenance and upgrade. User-related configs (security, endpoint, routing configuration) remained in the conf directory.
- Encrypted keys for Remote Shell configuration
- Remote Shell uses a private key for establishing connections. Private keys may be represented via protected keystores.
- Configuration values from environment variables
- Secure passwords and other important configuration values may be defined as environment variables and then used within FEJ configuration.
Bugs and fixes
- SSL acceptor session with a defined acceptor port couldn't be started.
- Problem description: The SSL FIX server instance wasn't defined and started during FEJ server initialization and thereby SSL acceptors can be connected as no opened SSL ports.
- Solution: The SSL FIX server instance is initialized during FEJ server start.
- SSL Acceptor couldn't restrict connection by a specific version of SSL protocol.
- Problem description: The configuration property
sslProtocol
works differently for an acceptor session. It defines a family of allowed SSL protocols for an acceptor. - Solution: A new
acceptedSslServerProtocols
option is added to restrict a connection via a specific SSL protocol.
- Problem description: The configuration property
- Session storage type is spontaneously changed after reloading a FIX session via FIXICC UI.
- Problem description: All FIX acceptors held the link to the same instance of the configuration object and any change of such configuration affected all acceptors sessions.
- Solution: The acceptor session receives a clone of a configuration object during its initialization.
- FEJ didn't log an error in case of failed FIX session authorization.
- Problem description: FEJ does not log a validation error if the FIX session connects with invalid credentials or without them.
- Solution: Logging of such a type of error was added.
- FEJ incorrectly interpreted empty username/password properties.
- Problem description: FEJ expected the Logon(A) message with empty Username(553) and Password(554) tags in case of username/password properties are configured without values.
- Solution: FEJ ignores username/password properties if they are empty.
- An acceptor session sent incoming username/password back.
- Problem description: An acceptor session sent an incoming username/password back, but it just had to match them with the configured ones.
- Solution: The acceptor session validates an incoming username/password and doesn't send them back in the Logon(A) answer.
- Sequence reset for FIX session via Remote Shell CLI didn't work.
- Problem description: The "session reset <session_id>" command returned an error message and didn't reset FIX session sequences.
- Solution: The Remote Shell CLI command is fixed.
- Invalid SSL parameters of the particular FIX session locked the entire FEJ initialization.
- Problem description: An error during starting of a FIX session with invalid SSL parameters (invalid path to key/trustStore, invalid passwords, invalid stores types, etc.) broke the scheduler thread and it failed to start the rest sessions.
- Solution: Errors during a session start are isolated.
- FEJ server couldn't be started from a folder that has a space in its name.
- Problem description: Paths in the start script wasn't properly quoted.
- Solution: The FEJ server start script is fixed.
FIXEdge
...
Java 1.7.
...
1 Release Notes
December 03, 2020
New Features and Improvements
...
- Acceptor with a defined SSL connection couldn't be connected.
- Problem description: The secure FIX server, which should handle the incoming SSL connection, wasn't started by the default FEJ configuration.
- Solution: Management of the secure FIX server component was added.
- The invalid SSL configuration of a particular FIX session caused the start of the whole FEJ server to fail.
- Problem description: An error that occurred during FIX session start led to the failure of the whole FEJ server initialization.
- Solution: The error processing was fixed.
FIXEdge
...
Java 1.5.1 Release Notes
June 1, 2020
New Features and Improvements
...
- Kafka Endpoint can't publish/consume messages in a custom format.
- Problem description: serializer/deserializer classes were hardcoded to work with FIX messages in key-value string format.
- Solution: Hardcode was removed and new interfaces for serialization/deserialization of MessageEvent instance into custom format were provided.
- The scheduler doesn't start the session in the middle of the day.
- Problem description: FIX session does not start if FEJ server has started after its start time but before its stop time.
- Solution: The scheduler logic was fixed and now it can start FIX sessions if the FEJ is started during their working hours.
FIXEdge
...
Java 1.4.1 Release Notes
March 6, 2020
Bugs and fixes
- Kafka Endpoint can't be started by the scheduler.
- Problem description: All Kafka Endpoints are started right after the initialization and it's impossible to manage them later by the scheduler tasks.
- Solution: The flexibility of initialization for Kafka Endpoints was enhanced.
FIXEdge
...
Java 1.4.
...
0 Release Notes
April 3, 2019
New Features and Improvements
...
- The invalid stale period calculation for messages in Store and Forward queue.
- Problem description: Stale period for messages in Store and Forward queue (storeAndForward.stalePeriod option) worked differently in different time zones.
- Solution: a strategy for managing 'stale' messages was fixed.
- FIX session disappears right after disconnect.
- Problem description: disposeOnDisconnect option was active by default and FIX sessions are destroyed in case of any disconnect (due to network problems for example).
- Solution: option is disabled in default FIX session configuration.
- Reconnecting FIX session doesn't stop when the cluster node is switched to backup mode.
- Problem description: When a new leader is elected in the cluster, initiator sessions, which are trying to reconnect on previous leader node, aren't stopped. As a result, it may lead to restoring FIX connection with the wrong node.
- Solution: All sessions are disposed when the cluster node role switches from leader to backup.
- FIX Endpoint may send a Heartbeat(0) message before Logon(A) on connect.
- Problem description: There was a bug in FIX Antenna Java and it may send a Heartbeat(0) message before Logon(A) for a new FIX session.
- Solution: FIX Antenna Java updated to version 2.21.1, which includes fix for sync_noqueue mode.
FIXEdge
...
Java 1.3.0 Release Notes
April 3, 2019
New Features and Improvements
...