Technical article on timeouts in the Reprise License Manager
There are two types of timeout events in RLM: connection timeouts, and idle timeouts. Let’s dig into each of them a little bit deeper.
Connection timeouts occur when a client application takes too long to connect to one or more RLM license servers. Users can change the default connection timeout value from 10 seconds to as low as 5 seconds by setting an environment variable. If set to a negative value, the connect timeout will be its absolute value, and if any particular server connection times out, no further attempts will be made to that server. If set to a positive value, a connection will be attempted to the server even if it timed out on the last attempt. The latter example is the default behavior in RLM.
Skipping over License Servers
RLM also keeps track of which license servers in its license path list have an ISV’s server running on them. If either there is no ISV line for that ISV in a local license file, or an attempt is made to check out a license from a server and the RLM server returns a status indicating that this ISV is not present, then the server is flagged as not having that ISV server.
In a multi-server environment, it doesn’t make sense for an application to repeatedly attempt checkouts from servers that are known not to be serving its licenses. So, application developers may choose to “skip” these license servers. Note that by default, RLM will attempt all operations on all servers.
Idle Timeouts and Heartbeats
Most users want the license server to reclaim licenses from applications that become idle for too long. This ensures maximum utilization of floating (shared) license pools.
The RLM license server expects to hear from client applications periodically as a way for applications to tell the server that they are still active. Normally, this is done by sending “heartbeats” from clients to the server either automatically or under the direct control of the application itself.
Some software vendors may decide to inform the server that an interactive application is idle while waiting for user input. This allows the application’s license to be reclaimed by the server when the application waits too long for user input. When the user eventually “wakes up” the formerly idle application, it will attempt to reclaim any lost licenses from the server.
When licenses are timed out by the server, they are essentially checked back into the pool for use by others. This event can be recorded in a server report log, if desired.
User Control of Idle Timeouts
An end-user can specify a TIMEOUT value for any idle license. If the license remains idle for this amount of time, the license server performs an automatic check-in of the license and informs the application (if it is still running).
Software vendors can set a MIN_TIMEOUT keyword in a license that specifies the lowest value that an end-user can set for the timeout value of a license. If not specified in the license, the RLM default minimum of 3600 seconds (1 hour) is used.