Navigation:  Part II - Enhanced Features > How TOs and FAQ > How do I implement concurrent user testing? >

Special considerations

Previous pageReturn to chapter overviewNext page

 

The property CheckIntervall automatically is set by Licence Protector  and depends on the number of licences for the module. You can read that value with the function CheckInterval and if you want to change it you can use SetCheckInterval(). But do not set the value too small. If 1000 concurrent users have to do their heartbeat in a 10 second interval then you probably get a massive resource problem!

 

Stay near the automatic value which is

 

 

Number of licences

CheckInterval

5

20 seconds

10

41 seconds

20

84 seconds

50

3 minutes 34 seconds

100

7 minutes 20 seconds

500

about 40 minutes

1000

about 87 minutes

2000

about 3 hours 10 minutes

 

There is another parameter that can be set to modify the dead-recognition: DiffPct. That parameter’s at default value is 0. If you set it to e.g. 10 (per cent) then a dead user entry is recognized at least CheckInterval (10 seconds) plus 10 per cent equal to 11 seconds.

 

You can read the DiffPct value (in per cent) of a module by the function DiffPct and you can set it with SetDiffPct.

 

Note: A change of CheckInterval with SetCheckInterval and DiffPct with SetDiffPct affect the whole licence environment so never let each of your clients modify these values. Use a central administrator to perform that operation.

 

To check the local properties of the concurrent user mechanism there are the following functions:

 

GetCUIsRunning – checks if the user for that module is running, that means that it was validated and so the concurrent using started

 

GetCULastValidate – Get the time of the last automatic (not explicitly executed) validate (the last heartbeat!)

 

GetCUNextValidate – Get the time of the next, planned automatic validate (the next heartbeat)

 

GetCURunCounter – Gets the number of executed automatic validates

 

These functions only get values of the local instance of Licence Protector. If you are on Bert’s machine and he uses the concurrent user module D1006 then you can use the functions to extract the values. You can not get the values of Charlie which uses the module in another client and therefore access another Licence Protector instance.

 

As explained before, the Quit() operation is essential for the concurrent user mechanism. Don’t forget to Quit()! This will free the licence in the licence file.

 

An alternative to Quit() is StopConcurrentUsage() which is performed only for a specified user and a specified module. So it typically is used in the middle of a running application in contrary to Quit() which normally is used at terminating the application.

 

We recommend to using the above mentioned functions only if you do explicitly dont want to use the in build default values.

 


Page url: http://www.helpserver.biz/onlinehelp/lp/easygo/2.5/help2000/index.html?concurrentuser_special_considerations.htm