Asked by:
SqlSyncProvider connection object problem

Question
-
Hi,
I am just wonder is this a bug of SqlSyncProvider? I have 4 database. each one i want to sync between my two server. I have wrote some code as bellow
private void StartStyn() { string TarasimaConnection = ConStrCollection["TaraServer"].ConnectionString; // TarasimaConnection ="Data Source=NOMAN-THINK;Initial Catalog=BitopiSplint;Persist Security Info=True;User ID=sa;Password=*****" string HQServerconnection = ConStrCollection["HQServer"].ConnectionString; // HQServerconnection= "Data Source=T1;Initial Catalog=BitopiSplint;Persist Security Info=True;User ID=sa;Password=******" foreach (DataRow OneScope in tblSyncScopeTimerSetting.Rows) { SqlConnection clientConn = new SqlConnection(TarasimaConnection); SqlConnection serverConn = new SqlConnection(HQServerconnection); if (clientConn.State != ConnectionState.Open) { clientConn.Open(); MessageWriter("Client Connection Opened"); } if (serverConn.State != ConnectionState.Open) { serverConn.Open(); MessageWriter("Server Connection Opened"); } clientConn.ChangeDatabase(OneScope["DataBaseName"].ToString()); // I am changing my database to "Bimob" in the connection object. serverConn.ChangeDatabase(OneScope["DataBaseName"].ToString()); // I am changing my database to "Bimob" in the connection object. SyncOrchestrator syncOrchestrator = new SyncOrchestrator(); pbClient.Value = 0; pbServer.Value = 0; // set local provider of orchestrator to a sync provider associated with the // ContactScope in the BitopSplint Server database syncOrchestrator.LocalProvider = new SqlSyncProvider(OneScope["ScopeName"].ToString(), serverConn); MessageWriter("Scope Name:" + OneScope["ScopeName"].ToString()); // set the remote provider of orchestrator to a server sync provider associated with // the ContactScope in the Peer2 client database syncOrchestrator.RemoteProvider = new SqlSyncProvider(OneScope["ScopeName"].ToString(), clientConn); switch (OneScope["Direction"].ToString()) { case "Download": syncOrchestrator.Direction = SyncDirectionOrder.Download; break; case "Upload": syncOrchestrator.Direction = SyncDirectionOrder.Upload; break; case "UploadAndDownload": syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload; break; case "DownloadAndUpload": syncOrchestrator.Direction = SyncDirectionOrder.DownloadAndUpload; break; default: break; } SyncOperationStatistics syncStats=null; try { syncStats = syncOrchestrator.Synchronize(); ; // Here i am getting error } catch (Exception ex) { MessageWriter(ex.Message.ToString(), true); } } }
when i run this code I am getting following error.Cannot find a valid scope with the name 'BiMob Buyer' in table '[scope_info]'. Ensure that this scope exists and that it has a corresponding valid configuration in the configuration table '[scope_config]'.
I under stand that Sync is not finding my Scope name in targeted database. when i dig in to the code I found that SqlSyncProvider is making the problem. I changed the database (Bimob) by ChangeDatabase method of Connection object. but still SqlSyncProvider is using the old (BitopiSplint) database with is given as Initial Catalog.
then I change my code a little. I replace the database name in the connection string and then create connection object for SqlSyncProvider.
Sync is working fine with this fixing.
NomanWednesday, January 11, 2012 11:00 AM
All replies
-
have you tried disabling connection pooling?Wednesday, January 11, 2012 11:38 AM
-
Actually I am not asking for solution. I need to know is there any mistake in my understanding or it is a bug of Sync Framework.
Ariful Ambia Noman
Manager MIS
Bitopi Group
- Edited by Ariful Ambia Noman Thursday, January 12, 2012 3:42 AM
Wednesday, January 11, 2012 2:16 PM