I was working on this customer issue, I found out the following behavior where the smaller timeout UltraLite is using, the fast the sync time.
For this scenario to happen, you need to be doing a large sync download and a network interruptions is occurring.
- Using SUP 2.1.x or 2.2.
- UltraLite client synchronizing with SUP 2.1.3
- The sync time keeps going faster.
UltraLite, SUP, client sends a keep Alive to SUP, MobiLink, to keep the connection active. By default, the Keep Alive value is whatever the timeout value divided by
- half. Example:
- If timeout value is set on the client by default to 300 seconds, The keep Alive that UltraLite sends up is timeout /2 which is every 150 seconds, the client will send up a keep alive request.
Instead of the user needing to play with the timeout value, we have enhanced the MobiLink server, so the performance is optimized and independent of the timeout value. This is done in MobiLink version 220.127.116.1169 or higher.
Another thing we found during the debugging is that UltraLite HTTP client could ask server to resend bytes needlessly was sending up. This has been fixed in build UltraLite 18.104.22.16871.
The SUP engineers are working on getting these into the SUP release soon may be SUP 2.3 or a private patch.
How do you know if you have this enhancement?
- Go to the default installation of your SUP ( i.e: C:\Sybase\UnwiredPlatform\Servers\SQLAnywhere12\BIN64)
- Right click mlsrv12.exe
- Select Properties
- Click on the Details tab if you are on Windows 7 or Windows 2008
- You should see File version: 22.214.171.12471 or higher. Anything Higher or same, this build will contains both enhancement.
Hope this helps you reduce your sync time.