strict warning: Only variables should be assigned by reference in /home/itechpros/ on line 1434.

How can I increase the speed of my solution over the WAN in a low bandwidth environment?

1. The trips back to the Servoy Applicaiton Server are determined by:

- how often you call databaseManager.saveData()

- how often you call databaseManager.saveData()

- how much you use databaseManager.getDataSetByQuery()

- the amount of data / related tables you display on a form

- how many forms you show (since that means more data)

- searches, edits, creation, and deletion

If you can cut down the trips back to the Application Server, then your performance in low bandwidth environmet will be increased.

2. Use Preloading of your forms.  In Servoy, all objects are initialized when your first reference a form, like..

forms.formName or forms[formName]

So, in your startup method, write a loop that goes through your main forms, and reference each form as shown above.  You will take a speed hit at startup, but will get much more speed improvement throughout the rest of the application.

3.  Increase the maxClientHeap, which is the maximum amount of memory that will be used by Servoy Client.  This will allow more to be kept in memory on the client, so they will not have to go back to the server.  This will also allow you to preload more forms, since they can be held in memory.

4.  Try to use foundsets and built in Servoy searches, instead of using databaseManager.getDataSetByQuery, since the prior options can utilize the client's cache, instead of requireing a trip back to the server. 

5.  Evaluate the network topology.  How many hops does it take to get from the client from the server.  Consider using a VPN to force traffic to tunnel over the same path in the WAN.  

6.  At startup, use databaseManager.setCreateEmptyFormFoundsets().  This will stop servoy from loading the default records when a form ins shown.  Instead, the form will show 0 records