MobiLink synchronization is fault tolerant. For example, if a communication link fails during synchronization, both the remote database and the consolidated database are left in a consistent state.
On the client, failure is indicated by a return code.
Synchronization failure is handled differently depending on when it happens. The following cases are handled in different ways:
Failure during upload If the failure occurs while building or applying the upload, the remote database is left in exactly the same state as at the start of synchronization. At the server, any part of the upload that has been applied is rolled back.
Failure between upload and download If the failure occurs once the upload is complete, but before the MobiLink client receives the download, the client cannot be certain whether the uploaded changes were successfully applied to the consolidated database. The upload might be fully applied and committed, or the failure may have occurred before the server applied the entire upload. The MobiLink server automatically rolls back incomplete transactions in the consolidated database.
The MobiLink client maintains a record of all uploaded changes in case they must be sent again. The next time the client synchronizes, it requests the state of the previous upload before building the new upload. If the previous upload was not committed, the new upload contains all changes from the previous upload.
Failure during download When you specify download acknowledgement and a failure occurs on the remote device while applying the download, any part of the download that has been applied is rolled back and the remote database is left in the same state as before the download. The MobiLink server also rolls back the download transaction in the consolidated database.
In all cases where failure may occur, no data is lost. The MobiLink server and the MobiLink client manage this for you. The developer or user do not need to worry about maintaining consistent data in their application.