Licence Protector

Details of the concurrent user technique

Hide Navigation Pane

Details of the concurrent user technique

Previous topic Next topic No directory for this topic  

Details of the concurrent user technique

Previous topic Next topic Topic directory requires JavaScript JavaScript is required for the print function Mail us feedback on this topic!  

 

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 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 does not need to have an identical time base for all involved clients because it uses an internal time mechanism.

 

Which name is used to count the license?

The functions ExistsEntry, IsEntryActivated, GetEntriesOfModule are also available for concurrent user modules. Note that the usernames you receive have the format:

 

Username+++Workstation

 

For example: You will receive alisa+++stationhermes if alisa uses a concurrent user license from her computer named stationhermes.

 

Adding the workstation name ensures that if a user logs in with the same name on 2 machines that it is counted as 2 licenses.

 

2 different concurrent user levels

 

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 -

Changes in version 2.6

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.