Hi subaoye,
Please find below my considerations.
1.
Indeed, in case of a restart of a server all your clients will need to connect back to the new servers; dealing with very high numbers of concurrent connections means that a massive number of clients will try to connect at the same time.
And this might end up with delays in handling requests with clients giving up after having opened a connection due to a timeout expired waiting for the completion of the create session protocol.
Please could you confirm that you are referring to this kind of scenario?
There are several causes that lead to this situation such as an insufficient sizing of resources or maybe it is due to external services, such as the user authentication process, that take longer than expected since it is temporarily overloaded too.
However there are few strategies to mitigate this problem, one as you have already mentioned is to relax the timeouts. The parameters that come into play are both client and server side; the server side parameter involved here is
session_timeout_millis (in lightstreamer_conf.xml).
But this could not be the best option to take in consideration; please consider that Lightstreamer server has a backpressure mechanism specifically intended to address these problems.
With version 7.1, backpressure has been deeply revised to be able to cope with extreme cases of massive disconnections and reconnections; please find here more details and in the case get back to us for further clarifications:
https://blog.lightstreamer.com/2020/01/the-new-features-in-lightstreamer-71.html#fe3
2.
Lightstreamer server has various mechanisms to determine a disconnection and therefore determine the closure of the associated client session.
For example, the detection of a closure of the tcp socket, or any errors in the reading or writing phase of the tcp socket; but it is true that in cases of "half-open" sockets they can escape and persist in the server for a long time.
To avoid these situations you can set the reverse heartbeat from the client, please refer to the API documentation for further details
https://sdk.lightstreamer.com/ls-web-client/8.0.3/api/ConnectionOptions.html#setReverseHeartbeatInterval
This refers to the latest version of the web library, but there are similarly in almost all libraries (except in cases of very old ones).
Please also note that it is the client that have to enable reverse heartbeat for the session and the server will adapt.
3.
I'm not sure if that's actually what you need, but certain information is available from our JMX interface:
https://www.lightstreamer.com/api/ls-jmx-sdk/latest/
For example you can double check the DataAdapterMBean (
https://sdk.lightstreamer.com/ls-jmx-sdk/5.5.6/api/com/lightstreamer/jmx/DataAdapterMBean.html) where you can get the session list for Item and the AdapterSetMbean (
https://sdk.lightstreamer.com/ls-jmx-sdk/5.5.6/api/com/lightstreamer/jmx/AdapterSetMBean.html) with the list of deployed Data Adapter and the list of active session.
Please note that the JMX interface is an optional feature so may not be entitled by your production license.
Regards,
Giuseppe