We are delighted to announce that Lightstreamer 7.2 has been publicly released.
You can download it right now from https://www.lightstreamer.com/download/
The official Docker image and the Amazon EC2 AMI are available too.
Lightstreamer 7.2 and the most recent client and adapter SDKs bring many improvements and fixes, mainly covering performance and features. This, in many aspects, completes the renovation work started with Lightstreamer 7.0. Below are some highlights but you can check out the full list in the changelog.
Improvements
Threading
In a continuous effort to optimize the usage of the available computational resources and to prevent bottlenecks, a few weak points have been addressed.
The update method of the Data Adapter interface, which was left unoptimized in favor of smartUpdate, now features a parallel implementation and becomes a fully-fledged, handy alternative to smartUpdate also for frequent updates scenarios.
The most critical Metadata Adapter invocations, i.e. notifyUser and notifyUserMessage, are performed asynchronously towards Remote Adapters, but, as a side effect, previously it was not possible to configure a limit on the number of invocations currently open. Now it is possible to both set a limit and trigger backpressure actions on the clients when the limit is hit.
Finally, more checks have been added to interrupt the processing of client requests as soon as possible, if the client disconnects before getting the answer.
Logging
The logging subsystem has been revised to better distinguish log categories and treat each of them consistently.
In particular, the log produced during the processing of a client request is now strictly associated with a specific subset of loggers and all log lines from these loggers now include a reference to the involved connection, to help tracking the lifecycle of the request processing.
Similarly, the log related to the processing of a session is now strictly associated with a specific subset of loggers and all log lines from these loggers now include a reference to the session (i.e. the session ID), to help tracking the lifecycle of the session.
Monitoring
A weakness of the Monitoring Dashboard has been addressed, whereby, in the “JMX Tree”, when a MBean is displayed, all its properties are gathered and, in case a property is a list of a potentially high number of elements (like the list of all connected users), a long list could overload the Dashboard. Note that the same problem could affect other JMX agents connected to the Server’s JMX interface.
Now it is possible to suppress the return of such lists by configuration. The same information can now be gathered through JMX “operations”, which are never automatically evaluated by the agents.
MPN Module
The main area of maintenance was the MPN Module, responsible for the Mobile (and Web) Push Notification support.
Since the Module requires access to an internal database, and this is a potential source of issues, the Server has been made more resilient to such problems. Now the MPN Module can be disabled, both automatically, in case of problems (in particular upon Server startup), and programmatically, via JMX. Via JMX it is also possible to relaunch the Module at due time.
Other improvements regard the interface with the clients and the Metadata Adapters. In particular, a new pn_reconf operation has been added to the TLCP client protocol, to better support partial modification of MPN subscriptions. This will also enable a revision of the interface offered by the next generation of client SDKs.
The third-party libraries that are used to access Apple and Google Push Notification online services and the Module’s internal Database have also been updated.
Adapter Remoting Infrastructure
As the final step of the removal of SDK resources from the Server package, initiated with Lightstreamer 7.1.2, the Adapter Remoting Infrastructure is now considered an internal part of the Server and no longer a versioned part of the overall system. This is quite neutral as an improvement, but it is worth mentioning because it brings some visible consequences. In practice, the most recent and future versions of the Remote Adapter SDKs no longer express their compatibility constraints with respect to an Adapter Remoting Infrastructure version, but directly to a Server version.
Quickstart
The provided launch scripts now rely on any JAVA_HOME variable already set in the system or any java installation already available on the system path. So, in most environments, you will be able to launch the Server, for a quick evaluation, out of the box.
How to Upgrade
Upgrading to Lightstreamer 7.2 is straightforward. As usual, the new server keeps compatibility with all the previous clients. This way, you can upgrade the server safely, without disrupting production. Then, you can start upgrading the client libraries at your own pace.
Likewise, compatibility with all the previous Adapters, both In-Process and Remote, is kept.
Detailed instructions on how to upgrade from any previous version of Lightstreamer server to version 7.2.0 are available.
The Lightstreamer configuration files can be upgraded automatically through a very handy online tool.
If you are on the Cloud License Manager (CLM), your license has been upgraded automatically to enable Lightstreamer 7.2. If you are still using license files, please contact support@lightstreamer.com to get your updated keys.