Answered by:
updates are not pushed from SQL Server 2008 to SQL CE 3.5 using Microsoft Sync

Question
-
Hi
I am using Sync frame work with Download only Option from sql server 2008 - SQL SERVER CE 3.5
For past 2 days Sync is not updating records in SQL CE 3.5 that was updated in sql server 2008.
This was working previously. Stopped updating for past 2 days.
When i try to delete SDF File and re-create it a new sdf file is created and i could see the records
My code is as below
SyncAgent sampleSyncAgent = new SyncAgent(syncTables, false);
SyncStatistics syncStatistics = sampleSyncAgent.Synchronize();
IN SyncAgent class i have code as below in the constructor
this.LocalProvider = new ClientSyncProvider();
this.RemoteProvider = new ServerSyncProvider(tablestoSync, pBatchSync);
SyncGroup syncGroup = new SyncGroup("ABC");;foreach (var tables in tablestoSync )
{
SyncTable syncTable = new SyncTable(tables.Tablename);
syncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable; //UseExistingTableOrFail; //
syncTable.SyncDirection = SyncDirection.DownloadOnly;
syncTable.SyncGroup = syncGroup;
this.Configuration.SyncTables.Add(syncTable);}
This was previously working but suddenly stopped syncing.
Friday, January 11, 2013 2:13 PM
Answers
-
not sure why you're checking for ChangesApplied inside ChangeSelected event.... the changes have just been selected, they have yet to be applied.
you should be checking what has been applied in the ChangesApplied event.
anyway, try running SQL Profiler and see what anchor value is being passed to the SelectIncremental commands.
- Marked as answer by Chillu-B Wednesday, January 16, 2013 9:29 PM
Wednesday, January 16, 2013 12:52 AM
All replies
-
this is a duplicate of this other thread: http://social.msdn.microsoft.com/Forums/en-US/syncdevdiscussions/thread/49ddd3f5-6834-4a14-81dd-7737cdc5c0fd
have you tried subscribing to the ChangesSelected event to verify if it's actually finding the changes?
or subscribing to he ApplyChangeFailed event to see if its encountering issues applying the change?
have you made any changes on the server? database restore?
Monday, January 14, 2013 1:00 AM -
Hi JuneT
Yes i have Subscribed to ChangesSelected && ApplyChangeFailed .
Updates Count is showing Zero though there are Updates in Database server.
public void SampleServerSyncProvider_ChangesSelected(object sender, SyncProgressEventArgs args)
{
try
{
string message = "";
switch (args.SyncStage)
{
case SyncStage.ApplyingInserts:
message += "Applying insert for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
message += "(Applied:" + args.TableProgress.ChangesApplied.ToString() + "/Pending:" + args.TableProgress.ChangesPending.ToString() +
"/Failed:" + args.TableProgress.ChangesFailed.ToString() + "/Total:" + args.TableProgress.TotalChanges.ToString() + ")";
break;
case SyncStage.ApplyingUpdates:
message += "Applying update for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
message += "(Applied:" + args.TableProgress.ChangesApplied.ToString() + "/Pending:" + args.TableProgress.ChangesPending.ToString() +
"/Failed:" + args.TableProgress.ChangesFailed.ToString() + "/Total:" + args.TableProgress.TotalChanges.ToString() + ")";
break;
case SyncStage.ApplyingDeletes:
message += "Applying delete for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
message += "(Applied:" + args.TableProgress.ChangesApplied.ToString() + "/Pending:" + args.TableProgress.ChangesPending.ToString() +
"/Failed:" + args.TableProgress.ChangesFailed.ToString() + "/Total:" + args.TableProgress.TotalChanges.ToString() + ")";
break;
case SyncStage.GettingInserts:
message += "Enumerating inserts for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
break;
case SyncStage.GettingUpdates:
message += "Enumerating updates for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
break;
case SyncStage.GettingDeletes:
message += "Enumerating deletes for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
break;
}
//System.Diagnostics.Debug.WriteLine(message);
}
catch (Exception ex) { }
}Tuesday, January 15, 2013 9:15 PM -
not sure why you're checking for ChangesApplied inside ChangeSelected event.... the changes have just been selected, they have yet to be applied.
you should be checking what has been applied in the ChangesApplied event.
anyway, try running SQL Profiler and see what anchor value is being passed to the SelectIncremental commands.
- Marked as answer by Chillu-B Wednesday, January 16, 2013 9:29 PM
Wednesday, January 16, 2013 12:52 AM -
Hi JuneT
After running profiler i came to know i was missing below line from my code.
tableBuilder.UpdateTrackingColumn = "SqlCeUpdateID";
Now Updates correctly pushed
- Edited by Chillu-B Wednesday, January 16, 2013 9:33 PM
Wednesday, January 16, 2013 9:33 PM