What happens if an application crashes and no Quit could be performed to remove the user from the license file? The license of this user keeps locked and no other user can use the in fact free license. To avoid this problem, Licence Protector 5 uses a heartbeat algorithm to identify a “dead” license and frees it for other users. Every concurrent user sends a heartbeat (in fact an automatic validate) and at the same time checks if there are missing heartbeats of other users. As a result, 'alive' users remove 'dead' ones in the license file.
Every module has a property CheckInterval which decides, when heartbeats have to take place and are expected to take place. With that method it is assured, that at maximum 2 times of the check interval 'dead' users are removed from the license file. This interval is calculated automatically depending on the maximum number of users. In a file with module A (30 users), module B (45 users) and module C (15 users) the module B would be used to set the interval time as it includes the maximum number of users. The time is 30 seconds multiplied with number of users.
Example
Concurrent user module M1 with 10 licences (module with the maximum number of users)
The module M1 is validated with PrepareAndCheck or Validate, which starts the concurrent user mechanism. The heartbeat of every instance is by default 10 users x 30 seconds = 300 seconds. A 'dead' user license would be removed in best case after 300 seconds and worst case after 600 seconds.
If an application crashes and the user starts the application again, there are 2 situations:
•the license was not removed and is still a valid license in the file. Then the license is updated and the application starts
•the license was removed. Then the application can only start if there is a free license available
Note that Licence Protector 5 does not need to have an identical time base for all involved clients because it uses an internal time mechanism.
There are two possible concurrent user levels:
•With Heartbeat (default)
•Light
In level “Light”, there is no heartbeat mechanism and therefore a dead instance is not recognized and removed automatically. Those dead instances have to be removed manually (see remove concurrent user). The advantage of “Light” is, that it does not need as many resources as the level “Heartbeat”.
You can change the default value using different options:
•Use command ConcurrentUserLevel
•Change the setting only for one license file in the License Generator, detail page
•Change the setting in the license file template -
Until version 2.6, each module had an own heartbeat. Now only the module with the maximum number of licenses does the heartbeat testing. This is a major improvement regarding former versions, in which more than 50 concurrent user modules could lead to situations, where the application won’t react any further because there were multiple accesses to the licence file in one second.