Hi, after reading on-line documentation about Resuming Failed Downloads in Mobilink and Ultralite, I have got some doubts about how download failures are managed with UltraliteJ clients.
I’m using UltraliteJ for Android. Synchronization will be over 3G channels, where connection failures are an issue. Does Ultralite + Mobilink detect and recover those partial downloads automatically? Otherwise, how could I control and deal with it programmatically?
By default, if a synchronization fails, it is rejected and will be restarted on the next synchronization request as if the failed synchronization never happened.
For HTTP and HTTPS the UltraLite C runtime will retry automatically to resume the sync to handle very short communication interruptions.
A colleague of mine mentioned that if you specify synchronization parameters using a sync profile, you should be able to specify resume-able downloads or resuming a sync downloads (Unfortunately, the UltraLiteJ API does not expose a method to rollback the download). This would be used when there are longer communication errors.
The ideal design would involve sync code that retried after communication errors combined with code to detect when the phone is out of coverage. Retries would use increasing time delays between retries and perhaps a max number of retries (in case the server is down, you don't want to kill the battery).