Hi, I have a windows mobile .net app that uses an ultralite (v 16) database. The handheld has a cellular connection and will replicate data back to the consolidated database. It only uploads data. In a few instances, the cellular connection is lost after the upload has started but before the data reaches the consolidated database. I'm assuming this is happening because the record in the ultralite database will not upload later - during a full, connected replication. If I manually modify the record, it will send an update transaction but it will never send the original insert transaction. It's like the ultralite database has marked that record as sent. I looked for a sync switch or a mobilink switch I could set for this but didn't come up with anything. Is there anything I can do about this? Thank you in advance! Paula |
Your description indicates the row state management for that row no longer has a 'newly commited row, requires synchronization' status. That would mean your only option to force an insert to synchronize would be to delete, synchronize, and re-insert the data again.
Questions you might want to try to answer for yourself include:
Hi Paula,
What you describe here should not happen. UltraLite and Mobilink are very careful to preserve data. If UltraLite doesn't receive confirmation that the server has successfully committed the uploaded rows, it will ask the server on the next sync and resend them if required.
Said another way, UltraLite will not mark a row as "uploaded" until Mobilink confirms the row is safely committed to the consolidated database. Instead it marks the rows it sends as "uploaded but awaiting confirmation". If the server eventually acknowledges, then UL knows it can mark the row as "uploaded", otherwise the row goes back to "needs to be uploaded."
If you have found a bug, please provide all the reproducible information you can. Is it possible though that there's another explanation?