Table of Contents |
---|
...
New Features and Improvements
Expand | ||
---|---|---|
| ||
With the 1.10.4 release, FIXEdge Java provides the opportunity to enhance data handling and storage on the business layer—Histories which can be set up through DSL Rules. Key Updates:
|
...
- FIXEdge Java Session Update
Problem description: When an update was made to the session Host and Port parameters, the new settings were not being applied. This issue was preventing the establishment of sessions.
Solution: FIXEdge Java properly applies new Host and Port parameters after receiving a session update. This fix ensures that session's host and port parameters are updated correctly. - Issue with timestamps in the incoming FIX message log when metrics are enabled
Problem description: Problem with the incoming FIX message log incorrectly saving timestamps when metrics were activated. Different messages erroneously were been given the exact same timestamp.
Solution: When metrics are enabled, FIXEdge Java accurately logs timestamps in the incoming FIX message log. Every message will be correctly marked with a unique timestamp. - Issue with nanoseconds saved in incoming FIX log when enabling metrics
Problem description: The incoming log possessed nanoseconds precision. The outgoing log possessed milliseconds precision.
Solution: Both incoming and outgoing logs can measure accuracy in seconds, milliseconds, microseconds or nanoseconds depending on the chosen parameters. - FEJ FIX session cannot be stopped/connected after changing SenderCompID/TargetCompID
Problem description: After changing the Sender and Target CompIDs in H2 UI, the session could not be stopped or connected to. No errors were displayed on the UI or in the logs, and only a restart of FEJ would restore the session's functionality.
Solution: Even after changing the SenderCompID and TargetCompIDs, stopping and connecting to the session will function without needing a system restart.
FIXEdge Java 1.10.3 Release Notes
...
- 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.
...
- 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.
...
- 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.
...