private void buttonCleanupOrderDetailsMetadata_Click(object sender, EventArgs e) { try { DbSyncProvider provider = new DbSyncProvider(); provider = SetupSyncProvider(GetConnectionString(), provider); if (provider.CleanupMetadata() == false) { MessageBox.Show("Metadata cleanup failed, most likely due to concurrency issues. Please retry"); } } catch (Exception ex) { MessageBox.Show(ex.Message); if (_progressForm != null) { _progressForm.EnableClose(); _progressForm = null; } } }
static void Main(string[] args) { //The Utility class handles all functionality that is not //directly related to synchronization, such as holding peerConnection //string information and making changes to the server database. Utility util = new Utility(); util.RecreateCePeerDatabase(util.Ce1ConnString); //<snippetOCSv2_CS_Peer_Cleanup_Synchronize> //The SampleStats class handles information from the SyncStatistics //object that the Synchronize method returns. SampleStats sampleStats = new SampleStats(); SampleSyncProvider sampleSyncProvider = new SampleSyncProvider(); try { //Initial synchronization. Instantiate the SyncOrchestrator //and call Synchronize. sampleSyncProvider = new SampleSyncProvider(); SyncOrchestrator sampleSyncAgent; SyncOperationStatistics syncStatistics; //The integer passed to ConfigureDbSyncProvider is how old that metadata //can be (in days) before it is deleted when CleanupMetadata() is called. //The integer value is only relevant if CleanupMetadata() is called, as //demonstrated later in this application. sampleSyncAgent = new SampleSyncAgent( sampleSyncProvider.ConfigureDbSyncProvider(util.Peer1ConnString, 7), sampleSyncProvider.ConfigureDbSyncProvider(util.Peer3ConnString, 7)); syncStatistics = sampleSyncAgent.Synchronize(); sampleStats.DisplayStats(syncStatistics, "initial"); sampleSyncAgent = new SampleSyncAgent( sampleSyncProvider.ConfigureDbSyncProvider(util.Peer3ConnString, 7), sampleSyncProvider.ConfigureCeSyncProvider(util.Ce1ConnString)); syncStatistics = sampleSyncAgent.Synchronize(); sampleStats.DisplayStats(syncStatistics, "initial"); } catch (DbOutdatedSyncException ex) { Console.WriteLine("Outdated Knowledge: " + ex.OutdatedPeerSyncKnowledge.ToString() + " Clean up knowledge: " + ex.MissingCleanupKnowledge.ToString()); } catch (Exception ex) { Console.WriteLine(ex.Message); } //</snippetOCSv2_CS_Peer_Cleanup_Synchronize> //Update a row on peer 1. util.MakeDataChangesOnPeer(util.Peer1ConnString, "Customer"); //Instantiate a provider, connect to peer 1, and delete tombstone metadata that //is older than 7 days. //<snippetOCSv2_CS_Peer_Cleanup_CleanupMetadata> sampleSyncProvider = new SampleSyncProvider(); DbSyncProvider provider1 = sampleSyncProvider.ConfigureDbSyncProvider(util.Peer1ConnString, 7); if (provider1.CleanupMetadata() == true) { Console.WriteLine(String.Empty); Console.WriteLine("Metadata cleanup ran in the SyncSamplesDb_Peer1 database."); Console.WriteLine("Metadata more than 7 days old was deleted."); } else { Console.WriteLine("Metadata cleanup failed, most likely due to concurrency issues."); } //</snippetOCSv2_CS_Peer_Cleanup_CleanupMetadata> //Synchronize. try { SyncOrchestrator sampleSyncAgent; SyncOperationStatistics syncStatistics; sampleSyncAgent = new SampleSyncAgent( sampleSyncProvider.ConfigureDbSyncProvider(util.Peer1ConnString, 7), sampleSyncProvider.ConfigureDbSyncProvider(util.Peer3ConnString, 7)); syncStatistics = sampleSyncAgent.Synchronize(); sampleStats.DisplayStats(syncStatistics, "subsequent"); } catch (DbOutdatedSyncException ex) { Console.WriteLine("Outdated Knowledge: " + ex.OutdatedPeerSyncKnowledge.ToString() + " Clean up knowledge: " + ex.MissingCleanupKnowledge.ToString()); } catch (Exception ex) { Console.WriteLine(ex.Message); } //Delete a row on peer 3. util.MakeDataChangesOnPeer(util.Peer3ConnString, "Customer"); //Instantiate a provider, connect to peer 3, and delete all tombstone metadata. sampleSyncProvider = new SampleSyncProvider(); DbSyncProvider provider3 = sampleSyncProvider.ConfigureDbSyncProvider(util.Peer3ConnString, -1); if (provider3.CleanupMetadata() == true) { Console.WriteLine(String.Empty); Console.WriteLine("Metadata cleanup ran in the SyncSamplesDb_Peer3 database."); Console.WriteLine("All metadata was deleted."); } else { Console.WriteLine("Metadata cleanup failed, most likely due to concurrency issues."); } //Synchronize. try { SyncOrchestrator sampleSyncAgent; SyncOperationStatistics syncStatistics; sampleSyncAgent = new SampleSyncAgent( sampleSyncProvider.ConfigureDbSyncProvider(util.Peer1ConnString, 7), sampleSyncProvider.ConfigureDbSyncProvider(util.Peer3ConnString, 7)); syncStatistics = sampleSyncAgent.Synchronize(); sampleStats.DisplayStats(syncStatistics, "subsequent"); } catch (DbOutdatedSyncException ex) { Console.WriteLine(String.Empty); Console.WriteLine("Synchronization failed due to outdated synchronization knowledge,"); Console.WriteLine("which is expected in this sample application."); Console.WriteLine("Drop and recreate the sample databases."); Console.WriteLine(String.Empty); Console.WriteLine("Outdated Knowledge: " + ex.OutdatedPeerSyncKnowledge.ToString() + " Clean up knowledge: " + ex.MissingCleanupKnowledge.ToString()); Console.WriteLine(String.Empty); } catch (Exception ex) { Console.WriteLine(ex.Message); } //Return peer data back to its original state. util.CleanUpPeer(util.Peer1ConnString); util.CleanUpPeer(util.Peer3ConnString); //Exit. Console.Write("\nPress Enter to close the window."); Console.ReadLine(); }
private void buttonCleanupOrderMetadata_Click(object sender, EventArgs e) { try { DbSyncProvider provider = new DbSyncProvider(); provider = SetupSyncProvider(GetConnectionString(), provider); if (provider.CleanupMetadata() == false) { MessageBox.Show("Metadata cleanup failed. Please retry"); } } catch (Exception ex) { MessageBox.Show(ex.Message); if (_progressForm != null) { _progressForm.EnableClose(); _progressForm = null; } } }