Optimizing connectivity for remote Users

Hi all - we are running a fairly heavy tracker program, and are looking to optimize/reduce program rules. Users experience long loading times for some of the tracker stages. They do not have intermittent connection/ data has not been lost.

(We are up against the metadata export with dependency Error: tables can have at most 1600 columns…)

Other than the metadata, what can we do to optimize connectivity for international users with varied experiences?

(1) Defining decent Internet connectivity precisely is hard but as a rule of thumb the download speed should be minimum 10 Kbyte/second and accessibility should be minimum 70% of the time (from Documentation) - ok, we can use free internet speed tests to ensure this.

(2) Use of lightweight browser (and which are most recommended for 2021)

(3) Clearing of Browser cache (DHIS2 versions pre 2.36?) - in Browser first, before the DHIS2 app?

Anything else?

With thanks,

LogicalOutcomes Team

1 Like

@Gassim are you aware of any guidelines, or any teams who have explored this issue?

Thank you,


Hey I am actually waiting for a response but from my experience, the best way is to make sure that the sharing with the users who have limited internet connectivity is limited to only their tasks, or maybe if the user must have access to so much data, to have sharing divided into several user accounts for the same person? This means when they log in, they won’t have to download everything, but this is not an expert answer. :grin:

I’ll follow up for support for this post again (: Thanks! :smiley:

1 Like

Hey @sgaudon - sorry for the long response time.

The presence of a huge number of program rules usually does not put a harder strain on the internet connection, apart from the rules being downloaded again after each cache clean. For (3) we can say that running the cache clean might actually have a slightly negative effect, as items needs to be redownloaded. Unless there is a specific problem it might be best to avoid the cache cleaner as much as possible.

Depending on what is actually slow, if you have a huge number of program rules it might have a positive effect to make sure the rules run only when they need to. Each rule has a “program stage” that can optionally be selected on the first page in the maintenance app:

In the cases where a rule is only needed in one stage, it might be a good idea to select this stage in the dropdown - if for example you are running a validation of the data in the event, you might not need this validation to run unless the user works in one specific program stage where the data is entered. For all the rules where you are able to make a selection on this field, this rule will not be triggered for other stages.

You mentioned that the loading of the program stage is slow sometimes, does it also seem like the responsiveness from the program rules are slow? When you enter an illegal value, does it take some time before the warning is shown for example?