问题
I am using the Microsoft Sync Framework to synchronize a table on two Microsoft SQL Servers. I have created a test application which generates one row per second in the table on the remote server. The application making use of the Sync Framework runs on the local server. The test application created about 52000 entries in the database over one night. The syncing application executed a call to the SyncOrchestrator.Synchronize Method every 15 seconds. When I checked the outcome of the synchronization application by executing a count statement on the synchronized table and the remote table, the result was that 295 rows were missing in the synchronized table. I used the tablediff Utility to determine the Ids of the missing rows and then queried the tracking table with those ids. On the remote database, there is an entry for every single missing id in the tracking table whereas on the local database the ids of the missing rows are nowhere to be found in the tracking table. When I restart the synchronization application, the missing entries don't get updated either. I thought the Sync Framework took care of these inconsistencies automatically but unfortunately I seem to be wrong.
Is there any built-in method I can use to verify that the synchronization process has taken place successfully? Is there another way of verifying data consistency?
回答1:
there's an issue with change enumeration when DMLs and synchronization are running concurrently. have a look at this hotfix if it helps.
来源:https://stackoverflow.com/questions/28327043/how-to-make-sure-synchronization-using-the-microsoft-sync-framework-was-successf