locked
Microsoft Synchronization with SQL Express RRS feed

  • Question

  • Hi,

    I have question regarding Microsoft Synchronization Framework.

    we are using Sql Express in multiple Clients and Sql Server 2008 r2 server edition..

    we have a scenario like we need to synchronize the data between Client and Server each time, based on the filter selection could you please suggest me the best option for how to achieve using Sql server synchronization.

    Example :

    Client A

    Accounts

    id Name description

    1 'abc' 'test

    2 'xyz' 'test'

    Client B

    Accounts

    id Name description

    3 'zzz' 'test

    4 'yyy' 'test'

    Server

    1 'abc' 'test

    2 'xyz' 'test'

    3 'zzz' 'test

    4 'yyy' 'test'

    Monday, August 5, 2013 5:27 PM

All replies

  • what exactly are you asking? filter configuration?

    if you want client A to sync Account Ids 1 & 2 only then you create a filter that includes 1 & 2 only... same with  Client B.

    Tuesday, August 6, 2013 12:16 PM
  • I need Filter Condition on Each Account like Account ID 1 and Account ID 2, two different filter condition 
    Tuesday, August 13, 2013 7:46 PM
  • am still confused, so what's stopping you from adding those filters?
    Wednesday, August 14, 2013 3:35 AM
  • Yes i have added those filters its working fine but....

    if i do the bulk upload, like more than 2000 records from client to server its taking 5 minutes.

    my Sql Server is located in Cloud.... so can u please suggest me the performance tips using Microsoft Synchronization,

    and which is the best client and Server configuration system for Microsoft Synchronization.

    My Local Client Network Speed is : 11.39 Mb/s Download and 15.53 Mb/s Upload approx.

    Friday, August 16, 2013 9:19 AM
  • enable Sync Framework tracing so you know where it's spending it's time. you may also look at enabling batching.
    Friday, August 16, 2013 11:04 AM
  • Hi JuneT

    if we enable scoping Microsoft synchronization will create the addition table called tableName_Tracking.....

    instead of creating the tableName_Tracking table can we use enable Change Tracking in each table property.

    i am using Microsoft sync framework 2.1..... is any think i need to download to achive this task.

    why i am asking this because we have some continues changes in table structure.... so it is difficult to maintain.

    please help me on this

    Wednesday, August 28, 2013 9:07 AM
  • the built in SQL Change Tracking is only supported in the older offline provider and you can only have SQL Compact as the client DB (SqlCeClientSyncProvider/DbServerSyncProvider/SyncAgent).

    moving to SQL Change Tracking doesnt solve your problem on schema changes as Sync Fx don't sync schema and will not detect schema changes.

    Friday, August 30, 2013 1:51 AM
  • Hi JuneT

    thanks for replays,

    I need to display progress bar while synchronization ...... can i get any solution.

    my synchronization process i have written in Class libraries so how can i get the each table synchronization status into main UI Layer.

    Wednesday, September 4, 2013 6:07 PM
  • plenty of events you can hook into in: SyncProgress, SelectingChanges, ChangesSelected, ApplyingChanges, etc...
    Thursday, September 5, 2013 7:15 AM
  • thank you JuneT

    I have implemented the SyncProgress.... and its working fine.

    @Question:

    now i am facing the Sync Performance Issues....., like My SQL Server is located in Cloud,

    if i sync one records from Client to Server it takes 20 seconds......i have implemented batching also,

    how can i reduce the performance can u pls suggest,

    for further informance i will send u the SyncTrace log .... if you provide your email.


    thanks & regards

    Nagaraj L

    Friday, September 6, 2013 11:23 AM
  • check your trace and identity where it's spending most of its time. then see if you can optimize that part.
    Monday, September 9, 2013 1:48 AM
  • check your trace and identity where it's spending most of its time. then see if you can optimize that part.

    Hello Nagaraj

    Could you supply the code for the SyncProgress you implemented??

    Tuesday, September 10, 2013 10:27 AM
  • Hi Andre,

    Dim _progressForm As frmSyncProgress

       Dim strClientCon As String = System.Configuration.ConfigurationManager.AppSettings("ClientConnection")
       Dim strServerCon As String = System.Configuration.ConfigurationManager.AppSettings("ServerConnection")

       Private scopeTempleteName As String = "SIM_Templete"
       Private scopeName As String = "AccountsScope"

       Public BatchSize As UInteger = 50
       Public MemorySize As UInteger = 1000
       Public transactionCount As Integer

       Public Function CreatedSIM_Templete() As Boolean

          Dim dsTablelist As New DataSet
          Dim connection As New SqlConnection(strClientCon)

          '''''''''''''''''''CREATION OF TEMPLETE FOR CLIENT AND SERVER''''''''''''''''''''''''''''''''''''''''''''''''''''''''
          'Create a scope named "product" and add tables to it.
          Dim accountScope As DbSyncScopeDescription = New DbSyncScopeDescription(scopeTempleteName)


          dsTablelist = SIM_GetAllTableNames()
          If dsTablelist.Tables(0).Rows.Count > 0 Then
             For i = 0 To dsTablelist.Tables(0).Rows.Count - 1
                'Define the Products table.
                Dim tableName As String = dsTablelist.Tables(0).Rows(i)(1).ToString()
                Dim tableDesc As DbSyncTableDescription = SqlSyncDescriptionBuilder.GetDescriptionForTable(tableName, connection)
                'Add the Table to the scope object.    
                accountScope.Tables.Add(tableDesc)
             Next
          End If

          'Create a provisioning object for "product" and apply it to the on-premise database if one does not exist.
          Dim serverTemplate = New SqlSyncScopeProvisioning(connection, accountScope, SqlSyncScopeProvisioningType.Template)

          ' Filter Rows for the ListPrice column
          For i = 0 To dsTablelist.Tables(0).Rows.Count - 1
             Dim tableName As String = dsTablelist.Tables(0).Rows(i)(1).ToString()
             serverTemplate.Tables(tableName).AddFilterColumn("AccountID")
             serverTemplate.Tables(tableName).FilterClause = "[side].[AccountID] = @AccountID"
             Dim param = New SqlParameter("@AccountID", SqlDbType.UniqueIdentifier, 255)
             serverTemplate.Tables(tableName).FilterParameters.Add(param)
          Next

          ''''''''''''''''''''''''''''''''''Deprovision''''''''''''''''''''''''''''''''''''''''''''''''''''

          Dim serverSqlDepro = New SqlSyncScopeDeprovisioning(connection)
          If serverTemplate.TemplateExists(scopeTempleteName) Then
             serverSqlDepro.DeprovisionTemplate(scopeTempleteName)
             serverSqlDepro.DeprovisionStore()
          End If

          '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

          If Not serverTemplate.ScopeExists(scopeTempleteName) Then
             serverTemplate.Apply()
          End If
          '''''''''''''''''''END OF TEMPLETE FOR CLIENT AND SERVER''''''''''''''''''''''''''''''''''''''''''''''''''''''''

          connection.Close()
          connection.Dispose()

          Return True

       End Function

       Public Function ClientServerScopeCreation(ByRef connection As SqlConnection, ByVal strAccountID As String) As Boolean

          Dim IsScopeCreated As Boolean = False

          Try
             Dim serverProvRetain = New SqlSyncScopeProvisioning(connection)
             If Not serverProvRetain.ScopeExists(scopeName + "_" + strAccountID) Then
                Dim dsTablelist As New DataSet

                dsTablelist = SIM_GetAllTableNames()

                serverProvRetain.ObjectSchema = "dbo"
                serverProvRetain.CommandTimeout = 60 * 30
                serverProvRetain.PopulateFromTemplate(scopeName + "_" + strAccountID, scopeTempleteName)

                For i = 0 To dsTablelist.Tables(0).Rows.Count - 1
                   Dim tableName As String = dsTablelist.Tables(0).Rows(i)(1).ToString()
                   serverProvRetain.Tables(tableName).FilterParameters("@AccountID").Value = GetGUID(strAccountID)
                Next

                If Not serverProvRetain.ScopeExists(scopeName + "_" + strAccountID) Then
                   serverProvRetain.Apply()
                End If
             End If

             IsScopeCreated = True

          Catch
             Throw
          Finally
             'connection.Close()
             'connection.Dispose()
          End Try
          Return IsScopeCreated
       End Function

       Public Function Synchronization(ByVal strAccountID As String, ByVal SyncDirection As String, ByVal SyncOperation As String) As String

          Dim serverConn = New SqlConnection(strServerCon)
          Dim clientConn = New SqlConnection(strClientCon)
          Dim sb = New StringBuilder()

          _progressForm = Nothing
          'Setup the progress form and sync progress event handler           
          _progressForm = New frmSyncProgress
          _progressForm.Show()

          _progressForm.lblSyncOperation.Text = SyncOperation
          _progressForm.lblSyncDirection.Text = SyncDirection

          'CreatedSIM_ScopeByAccountID .... added Existing Code Here to understand easily
          If SyncOperation = UtilSyncOperation.UploadNew Or SyncOperation = UtilSyncOperation.DownloadNew Then
             If ClientServerScopeCreation(serverConn, strAccountID) = False Then
                Return "Server Scope is not Created"
             End If
             If ClientServerScopeCreation(clientConn, strAccountID) = False Then
                Return "Client Scope is not Created"
             End If
          End If

          Try
             Dim syncOrchestrator = New SyncOrchestrator()

             Dim serverProvider = New SqlSyncProvider(scopeName + "_" + strAccountID, serverConn)
             Dim clientProvider = New SqlSyncProvider(scopeName + "_" + strAccountID, clientConn)

             syncOrchestrator.LocalProvider = clientProvider
             syncOrchestrator.RemoteProvider = serverProvider

             'Set memory allocation to the database providers
             serverProvider.MemoryDataCacheSize = MemorySize
             clientProvider.MemoryDataCacheSize = MemorySize

             'Set application transaction size on destination provider.
             serverProvider.ApplicationTransactionSize = BatchSize

             If SyncDirection = UtilSyncDirection.Upload Then
                syncOrchestrator.Direction = SyncDirectionOrder.Upload
             Else
                syncOrchestrator.Direction = SyncDirectionOrder.Download
             End If


             'Handler Declaration--------------------------------------------------------------------------

             AddHandler clientProvider.ApplyChangeFailed, AddressOf Program_ApplyChangeFailed
             AddHandler serverProvider.ApplyChangeFailed, AddressOf Program_ApplyChangeFailed
             'Show Progress
             AddHandler clientProvider.SyncProgress, AddressOf Program_ShowProgress
             AddHandler serverProvider.SyncProgress, AddressOf Program_ShowProgress
             'Count transactions
             AddHandler serverProvider.ChangesApplied, AddressOf Program_ChangesApplied
             AddHandler clientProvider.ChangesApplied, AddressOf Program_ChangesApplied
             ' Peform the synchronisation
             AddHandler syncOrchestrator.SessionProgress, AddressOf Program_ShowSessionProgress

             'End of Handler Declaration--------------------------------------------------------------------

             Dim syncStats As SyncOperationStatistics = syncOrchestrator.Synchronize()

             Dim diff As TimeSpan = syncStats.SyncEndTime.Subtract(syncStats.SyncStartTime)
             sb.Append("Total Changes Uploaded: " + Convert.ToString(syncStats.UploadChangesTotal))
             sb.AppendLine()
             sb.Append("Total Changes Downloaded: " + Convert.ToString(syncStats.DownloadChangesTotal))
             sb.AppendLine()
             sb.Append(String.Format("Total Time To Synchronize H:M:S:Ms= {0}:{1}:{2}:{3}", diff.Hours, diff.Minutes, diff.Seconds, diff.Milliseconds))

             _progressForm.lblSyncMessage.Text = sb.ToString()
             'Update the UI
             _progressForm.EnableClose()
             _progressForm = Nothing
          Catch
             Throw
          Finally
             ' Shut down database connections.
             serverConn.Close()
             serverConn.Dispose()
             clientConn.Close()
             clientConn.Dispose()
          End Try

          Return sb.ToString()

       End Function

       Private Sub Program_ApplyChangeFailed(ByVal sender As Object, ByVal e As DbApplyChangeFailedEventArgs)

          Dim sb As New StringBuilder()
          sb.Append(e.Conflict.Type)
          sb.AppendLine()
          sb.Append(e.[Error])
          sb.AppendLine()

          e.Action = ApplyAction.Continue

       End Sub

       Private Function GetGUID(ByVal strAccountID As String) As Guid

          Dim guidMyGUID As Guid

          Try
             If strAccountID.Length > 0 Then
                guidMyGUID = New System.Guid(strAccountID)
                Return guidMyGUID
             Else
                Return System.Guid.Empty
             End If
          Catch
             Return System.Guid.Empty
          End Try

       End Function

       Public Sub Program_ShowProgress(ByVal sender As Object, ByVal args As DbSyncProgressEventArgs)

          If _progressForm IsNot Nothing Then
             _progressForm.Report(args)
          End If

       End Sub

       Private Sub Program_ShowSessionProgress(ByVal sender As Object, ByVal args As SyncStagedProgressEventArgs)

          If _progressForm IsNot Nothing Then
             _progressForm.Report(args)
          End If

       End Sub

       Private Sub Program_ChangesApplied(ByVal sender As Object, ByVal e As DbChangesAppliedEventArgs)

          transactionCount = transactionCount + 1
          Dim totalBytes As Double = CDbl(transactionCount * Convert.ToInt32(BatchSize))
          'Dim sb As New StringBuilder()
          'sb.Append("Changes Applied event fired: Transaction " + totalBytes + " bytes.")
          frmSyncProgress.lblTotalBytes.Text = "Transaction " + Convert.ToString(totalBytes) + " bytes."

       End Sub

    thanks & regards

    Nagaraj L

    Tuesday, September 10, 2013 11:43 AM
  • Hi Nagaraj,

    Great, I'm going to implement it.

    ---------
    By the way; I'm syncing on a local network; I have problems with large binary data in cells in one table.

    I was wondering where I could see the amount that I am transfering. I do'nt know if you are able to
    watch your IIS log: 
    C:\inetpub\logs\LogFiles\W3SVC1:
      - testserver 200 0 0 1530 113305822 35627  - This is 113 Mbyte

    and in the tracelog I have:
    http://tempuri.org/IRelationalSyncContract/ApplyChanges.     12(traces)            1m 15s  12:28:27               12:29:42

    When I sync a larger number of rows, I get in my tracelog:
    The external server replied with an unexpected answer (translated from Dutch) : (400) Bad Request.

    At the moment I am looking if I should use Mtom encoding (http://msdn.microsoft.com/en-us/library/aa395209.aspx)
    -----------

    But thanks for your code!

    Regards, Andre

    Tuesday, September 10, 2013 1:26 PM
  • Hi JuneT,


    My previous mail i have replayed with Code,

    Now i am sending the log Trace......... Here For Synchronize 9 records in VPN Connection Its taking more than 1 Minutes ....

    Client System :  Basic Win7 32bit System,4GB RAM with  VPN Connection

    Server Details : Windows Server 2008 r2 Enterprise with 4GB Ram  

    here with i am sending the Trace log ... can u pls suggest me where i am doing wrong...

    INFO   , SIM.vshost, 10, 09/10/2013 17:00:25:655,    ApplicationTransactionSize has been set to: 50
    INFO   , SIM.vshost, 10, 09/10/2013 17:00:25:707,    BeginSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:25:723, Connecting using string: Data Source=.;Initial Catalog=SIMClient;Integrated Security=True;Connect Timeout=600
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:25:736, Reading Schema Version Info
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:25:738,    Executing Command: SELECT [schema_major_version], [schema_minor_version], [schema_extended_info] FROM [schema_info]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:25:741, Connecting using string: Data Source=.;Initial Catalog=SIMClient;Integrated Security=True;Connect Timeout=600
    INFO   , SIM.vshost, 10, 09/10/2013 17:00:26:149,    BeginSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:26:150, Connecting using string: Data Source=ServerCon;Initial Catalog=SIMServer;Persist Security Info=True;User ID=sa;Password=****;Connect Timeout=600
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:33:439, Reading Schema Version Info
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:33:444,    Executing Command: SELECT [schema_major_version], [schema_minor_version], [schema_extended_info] FROM [schema_info]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:00:34:805, Connecting using string: Data Source=ServerCon;Initial Catalog=SIMServer;Persist Security Info=True;User ID=sa;Password=****;Connect Timeout=600
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:22:175, Connecting using string: Data Source=ServerCon;Initial Catalog=SIMServer;Persist Security Info=True;User ID=sa;Password=****;Connect Timeout=600
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:26:497, Reading Schema Version Info
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:26:500,    Executing Command: SELECT [schema_major_version], [schema_minor_version], [schema_extended_info] FROM [schema_info]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:29:957,    Executing Command: SELECT [scope_id], [scope_local_id], [scope_sync_knowledge], [scope_tombstone_cleanup_knowledge], [scope_timestamp], [scope_config_id], [scope_restore_count] FROM [scope_info] WHERE [sync_scope_name] = @sync_scope_name
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:29:963,       Parameter: @sync_scope_name Len: 50 Value: AccountsScope_5629f57c-74f5-4819-91f2-9a728173e605
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:537, Closing Connection
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:550, Remote data cache size requested: 1000 Kb, Local data cache size: 1000 Kb
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:555, Enumeration data cache size selected: 1000 Kb
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:576, Connecting using string: Data Source=.;Initial Catalog=SIMClient;Integrated Security=True;Connect Timeout=600
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:584, Reading Schema Version Info
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:584,    Executing Command: SELECT [schema_major_version], [schema_minor_version], [schema_extended_info] FROM [schema_info]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:590,    Executing Command: SELECT @sync_new_timestamp = min_active_rowversion() - 1
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:591,       Parameter: @sync_new_timestamp Value: Skipped since Not Input/InputOutput
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:594,    Executing Command: SELECT [scope_id], [scope_local_id], [scope_sync_knowledge], [scope_tombstone_cleanup_knowledge], [scope_timestamp], [scope_config_id], [scope_restore_count] FROM [scope_info] WHERE [sync_scope_name] = @sync_scope_name
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:595,       Parameter: @sync_scope_name Len: 50 Value: AccountsScope_5629f57c-74f5-4819-91f2-9a728173e605
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:620, ----- Checking for Outdated Peer -----
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:624,    Source Forgotten ReplicaKeyMap: [(0:7902bd0d11884e1aa0d99900c7b3b813) (1:2889ea7f32384b7d8e25bdf16456bd4d)] ScopeRangeSet: [00:[]]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:627,         Destination ReplicaKeyMap: [(0:7902bd0d11884e1aa0d99900c7b3b813) (1:2889ea7f32384b7d8e25bdf16456bd4d)] ScopeRangeSet: [00:[(0:462740) (1:9223372036854775807)]]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:627, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:628,    Destination is not outdated
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:629, --- End Checking for Outdated Peer ---
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:629, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:630, Memory DataCache Batching enabled. DataCache Size: 1000 Kb
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:633,       SyncBatchProducer: Batch spooling directory C:\Users\LN\AppData\Local\Temp\sync_7902bd0d11884e1aa0d99900c7b3b8132889ea7f32384b7d8e25bdf16456bd4d doesn't exist. Creating.
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:635,       SyncBatchProducer: Starting Background enumeration thread.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:637,       SyncBatchProducer: Producer queue count = 0
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:638,       SyncBatchProducer: Producer queue empty.  Waiting for queue availablility event
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:642,       Checking to see if batch producer has table watermarks available from previous sync.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:648,       RelationalSyncProvider.BatchedEnum
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:650,       Executing Command: [Accounts_selectchanges]
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:651,          Parameter: @sync_min_timestamp Value: 462740
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:651,          Parameter: @sync_scope_local_id Value: 3
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:652,          Parameter: @sync_scope_restore_count Value: 0
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:652,          Parameter: @sync_update_peer_key Value: 1
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:653,          Parameter: @AccountID Value: 5629f57c-74f5-4819-91f2-9a728173e605
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:657,    RelationalSyncProvider.BatchedEnum: --- End Table "Accounts" ---
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:657, 
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:658,       RelationalSyncProvider.BatchedEnum: Closing DataReader
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:658,       RelationalSyncProvider.BatchedEnum: Finished enumerating adapter Accounts
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:659,       RelationalSyncProvider.BatchedEnum: Adding rows enumerated for adapter Accounts to DataSet.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:662,       Checking to see if batch producer has table watermarks available from previous sync.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:663,       RelationalSyncProvider.BatchedEnum
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:663,       Executing Command: [ArchitecturalDecisions_selectchanges]
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:664,          Parameter: @sync_min_timestamp Value: 462740
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:664,          Parameter: @sync_scope_local_id Value: 3
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:664,          Parameter: @sync_scope_restore_count Value: 0
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:666,          Parameter: @sync_update_peer_key Value: 1
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:666,          Parameter: @AccountID Value: 5629f57c-74f5-4819-91f2-9a728173e605
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:668,    RelationalSyncProvider.BatchedEnum: --- End Table "ArchitecturalDecisions" ---
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:668, 
    -
    -
    -
    -

    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:767, 
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:767,       RelationalSyncProvider.BatchedEnum: Closing DataReader
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:768,       RelationalSyncProvider.BatchedEnum: Finished enumerating adapter Worksheets
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:768,       RelationalSyncProvider.BatchedEnum: Adding rows enumerated for adapter Worksheets to DataSet.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:769,       Checking to see if batch producer has table watermarks available from previous sync.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:769,       RelationalSyncProvider.BatchedEnum
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:770,       Executing Command: [Requirements_selectchanges]
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:770,          Parameter: @sync_min_timestamp Value: 462740
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:770,          Parameter: @sync_scope_local_id Value: 3
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:771,          Parameter: @sync_scope_restore_count Value: 0
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:771,          Parameter: @sync_update_peer_key Value: 1
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:772,          Parameter: @AccountID Value: 5629f57c-74f5-4819-91f2-9a728173e605
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:782,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 5bc227ea-a419-4e02-917e-223043a36c6a on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:782,          UV: 0,462860 CV: 0,462860
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:787,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 277 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:787,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 082fb4e5-9a94-40a4-9a6f-23a9e98fd6c5 on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:788,          UV: 0,462980 CV: 0,462980
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:788,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 554 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:789,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 765fb6a7-0c5e-49a1-a1a8-41afad1f5a8e on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:789,          UV: 0,462920 CV: 0,462920
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:790,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 831 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:790,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 79ba5470-6a61-49ac-b2c0-47ae815743af on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:791,          UV: 0,462890 CV: 0,462890
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:791,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 1108 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:792,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 210021fe-47ed-4fd5-9ebf-5f776287a115 on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:792,          UV: 0,462770 CV: 0,462770
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:793,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 1385 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:793,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 242a60f1-4302-426a-bb68-cbdd1b5d6cc0 on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:794,          UV: 0,462950 CV: 0,462950
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:794,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 1662 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:795,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 54a48d7e-ae10-4d2a-80ae-d4318962a775 on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:795,          UV: 0,463010 CV: 0,463010
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:796,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 1939 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:796,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = 60f6be66-9d8c-4f9c-9ed2-eb13ba1448ce on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:797,          UV: 0,462830 CV: 0,462830
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:797,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 2216 Bytes
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:798,       Insert for row with PK: AccountID = 5629f57c-74f5-4819-91f2-9a728173e605, WorksheetID = 05ad67bb-3cf5-4ff4-ae73-6189bc32d68c, RequirementID = f59ec2f0-d884-40e3-abd7-eee88bab2f5d on SIMClient
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:798,          UV: 0,462800 CV: 0,462800
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:798,       RelationalSyncProvider.BatchedEnum: Memory data cache size after reading row: 2493 Bytes
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:799,    RelationalSyncProvider.BatchedEnum: --- End Table "Requirements" ---
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:799, 
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:800,       RelationalSyncProvider.BatchedEnum: Closing DataReader
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:800,       RelationalSyncProvider.BatchedEnum: Finished enumerating adapter Requirements
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:802,       RelationalSyncProvider.BatchedEnum: Adding rows enumerated for adapter Requirements to DataSet.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:803,       SyncBatchProducer: Read last row's Sync_row_timestamp value for table Requirements as 462800.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:805,       Checking to see if batch producer has table watermarks available from previous sync.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:805,       RelationalSyncProvider.BatchedEnum
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:806,       Executing Command: [RequirementServiceXRef_selectchanges]
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:806,          Parameter: @sync_min_timestamp Value: 462740
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:807,          Parameter: @sync_scope_local_id Value: 3
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:807,          Parameter: @sync_scope_restore_count Value: 0
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:808,          Parameter: @sync_update_peer_key Value: 1
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:808,          Parameter: @AccountID Value: 5629f57c-74f5-4819-91f2-9a728173e605
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:810,    RelationalSyncProvider.BatchedEnum: --- End Table "RequirementServiceXRef" ---
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:810, 
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:811,       RelationalSyncProvider.BatchedEnum: Closing DataReader
    -
    -
    -
    -
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:887, 
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:888,       RelationalSyncProvider.BatchedEnum: Closing DataReader
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:888,       RelationalSyncProvider.BatchedEnum: Finished enumerating adapter CustomRequirementColumns
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:889,       RelationalSyncProvider.BatchedEnum: Adding rows enumerated for adapter CustomRequirementColumns to DataSet.
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:889,       RelationalSyncProvider.BatchedEnum: Finished enumerating all adapters.
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:889,       RelationalSyncProvider.BatchedEnum: Adding non batched rows as the last batch. Last batch data size 2493 Bytes
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:894,       SyncBatchProducer: Received 1st and last DataSet. Skip to Non batched mode.
    VERBOSE, SIM.vshost, 6, 09/10/2013 17:01:31:895,       SyncBatchProducer: Deleting spooling directory as we reverted to non batched mode
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:896,       SyncBatchProducer: Signalling Queue availability event. Queue Count: 1
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:31:897,       SyncBatchProducer: Queue availablility event fired
    INFO   , SIM.vshost, 6, 09/10/2013 17:01:31:897,       RelationalSyncProvider.BatchedEnum: Setting BgdEnumInProcess to false, BgdEnumCompleted to True and setting Cancellation event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:917,       SyncBatchProducer: Resetting Queue availablility event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:940,    Object of type Microsoft.Synchronization.Data.DbSyncProgressEventArgs dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:960,       SyncBatchProducer: Producer queue count = 28
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:962,       SyncBatchProducer: Resetting Queue availablility event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:964,    Object of type Microsoft.Synchronization.Data.DbSyncProgressEventArgs dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:31:966,       SyncBatchProducer: Producer queue count = 27
    -
    -
    -
    -
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:028,    Object of type Microsoft.Synchronization.Data.DbSyncProgressEventArgs dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:029,       SyncBatchProducer: Producer queue count = 5
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:029,       SyncBatchProducer: Resetting Queue availablility event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:030,    Object of type Microsoft.Synchronization.Data.DbSyncProgressEventArgs dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:030,       SyncBatchProducer: Producer queue count = 4
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:031,       SyncBatchProducer: Resetting Queue availablility event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:031,    Object of type Microsoft.Synchronization.Data.DbSyncProgressEventArgs dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:032,       SyncBatchProducer: Producer queue count = 3
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:032,       SyncBatchProducer: Resetting Queue availablility event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:033,    Object of type Microsoft.Synchronization.Data.DbSyncProgressEventArgs dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:033,       SyncBatchProducer: Producer queue count = 2
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:034,       SyncBatchProducer: Resetting Queue availablility event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:034,    Object of type Microsoft.Synchronization.Data.DbSyncProgressEventArgs dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:035,       SyncBatchProducer: Producer queue count = 1
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:036,       SyncBatchProducer: Resetting Queue availablility event.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:036,    Object of type System.Data.DataSet dequeued.
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:037,    All changes fit in memory. Non batched mode
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:32:038, Committing transaction
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:038, Closing Connection
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:32:063, Connecting using string: Data Source=ServerCon;Initial Catalog=SIMServer;Persist Security Info=True;User ID=sa;Password=****;Connect Timeout=600
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:33:195,    Executing Command: SELECT @sync_new_timestamp = min_active_rowversion() - 1
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:33:259,       Parameter: @sync_new_timestamp Value: Skipped since Not Input/InputOutput
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:34:113,    Executing Command: SELECT [scope_id], [scope_local_id], [scope_sync_knowledge], [scope_tombstone_cleanup_knowledge], [scope_timestamp], [scope_config_id], [scope_restore_count] FROM [scope_info] WHERE [sync_scope_name] = @sync_scope_name
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:34:115,       Parameter: @sync_scope_name Len: 50 Value: AccountsScope_5629f57c-74f5-4819-91f2-9a728173e605
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:35:078, Connecting using string: Data Source=ServerCon;Initial Catalog=SIMServer;Persist Security Info=True;User ID=sa;Password=****;Connect Timeout=600
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:36:347,    Executing Command: SELECT @sync_new_timestamp = min_active_rowversion() - 1
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:36:350,       Parameter: @sync_new_timestamp Value: Skipped since Not Input/InputOutput
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:37:393,    Executing Command: SELECT [scope_id], [scope_local_id], [scope_sync_knowledge], [scope_tombstone_cleanup_knowledge], [scope_timestamp], [scope_config_id], [scope_restore_count] FROM [scope_info] WHERE [sync_scope_name] = @sync_scope_name
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:37:395,       Parameter: @sync_scope_name Len: 50 Value: AccountsScope_5629f57c-74f5-4819-91f2-9a728173e605
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:41:397,           Source ReplicaKeyMap: [(0:7902bd0d11884e1aa0d99900c7b3b813) (1:2889ea7f32384b7d8e25bdf16456bd4d)] ScopeRangeSet: [00:[(0:463010)]]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:41:400,      Destination ReplicaKeyMap: [(0:7902bd0d11884e1aa0d99900c7b3b813) (1:2889ea7f32384b7d8e25bdf16456bd4d)] ScopeRangeSet: [00:[(0:462740) (1:626495)]]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:41:403,    Min Timestamp 0
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:41:405,    Starting new application transaction with knowledge ReplicaKeyMap: [(0:7902bd0d11884e1aa0d99900c7b3b813) (1:2889ea7f32384b7d8e25bdf16456bd4d)] ScopeRangeSet: [00:[(0:463010)]]
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:412, ----- Applying Changes for Scope "AccountsScope_5629f57c-74f5-4819-91f2-9a728173e605" -----
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:414,         Source Scope Id: 7902bd0d11884e1aa0d99900c7b3b813
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:415,    Destination Scope Id: 2889ea7f32384b7d8e25bdf16456bd4d
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:417, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:429,    ----- Deletes for Table "CustomRequirementColumns" -----
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:430,       0 Deletes Applied
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:431,    --- End Deletes for Table "CustomRequirementColumns" ---
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:433, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:435,    ----- Deletes for Table "SLAContractTerms" -----
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:436,       0 Deletes Applied
    -
    -
    -
    -
    -
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:537,       0 Inserts Applied
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:537,    --- End Inserts for Table "SolutionCaseHierarchy" ---
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:538, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:538,    ----- Inserts for Table "SLAServiceCategoryAllocationPercent" -----
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:539,       0 Inserts Applied
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:539,    --- End Inserts for Table "SLAServiceCategoryAllocationPercent" ---
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:540, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:540,    ----- Inserts for Table "Worksheets" -----
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:541,       0 Inserts Applied
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:541,    --- End Inserts for Table "Worksheets" ---
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:542, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:41:543,    ----- Inserts for Table "Requirements" -----
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:42:966,    Executing Command: [Requirements_bulkinsert]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:42:968,       Parameter: @sync_min_timestamp Value: 0
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:42:970,       Parameter: @sync_scope_local_id Value: 3
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:42:972,       Parameter: @changeTable Value: Requirements
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:45:496, Applied 9 of 9 rows with bulk command BulkInsertCommand
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:504,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="082fb4e5-9a94-40a4-9a6f-23a9e98fd6c5"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:509,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="210021fe-47ed-4fd5-9ebf-5f776287a115"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:510,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="242a60f1-4302-426a-bb68-cbdd1b5d6cc0"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:511,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="54a48d7e-ae10-4d2a-80ae-d4318962a775"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:512,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="5bc227ea-a419-4e02-917e-223043a36c6a"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:514,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="60f6be66-9d8c-4f9c-9ed2-eb13ba1448ce"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:516,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="765fb6a7-0c5e-49a1-a1a8-41afad1f5a8e"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:517,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="79ba5470-6a61-49ac-b2c0-47ae815743af"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:518,    Inserted row with PK using bulk apply: AccountID="5629f57c-74f5-4819-91f2-9a728173e605" WorksheetID="05ad67bb-3cf5-4ff4-ae73-6189bc32d68c" RequirementID="f59ec2f0-d884-40e3-abd7-eee88bab2f5d"  on SIMServer
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:529, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:45:531,       9 Inserts Applied
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:45:531,    --- End Inserts for Table "Requirements" ---
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:45:532, 
    -
    -
    -
    -
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:45:626, 
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:45:633, --- End Applying Changes for Scope "AccountsScope_5629f57c-74f5-4819-91f2-9a728173e605" ---
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:45:633, 
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:636, New destination ReplicaKeyMap: [(0:2889ea7f32384b7d8e25bdf16456bd4d) (1:7902bd0d11884e1aa0d99900c7b3b813)] ScopeRangeSet: [00:[(0:626495) (1:463010)]]
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:639, Writing scope using command: UPDATE [scope_info] SET [scope_sync_knowledge] = @sync_scope_knowledge, [scope_tombstone_cleanup_knowledge] = @sync_scope_cleanup_knowledge WHERE [sync_scope_name] = @sync_scope_name AND (@sync_check_concurrency = 0 OR [scope_timestamp] = @sync_scope_timestamp);SET @sync_row_count = @@ROWCOUNT
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:639,    Executing Command: UPDATE [scope_info] SET [scope_sync_knowledge] = @sync_scope_knowledge, [scope_tombstone_cleanup_knowledge] = @sync_scope_cleanup_knowledge WHERE [sync_scope_name] = @sync_scope_name AND (@sync_check_concurrency = 0 OR [scope_timestamp] = @sync_scope_timestamp);SET @sync_row_count = @@ROWCOUNT
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:640,       Parameter: @sync_scope_name Len: 50 Value: AccountsScope_5629f57c-74f5-4819-91f2-9a728173e605
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:640,       Parameter: @sync_scope_knowledge Len: 156 Value: 00-00-00-05-00-00-00-00-00-00-00-01-00-00-00-00-00...
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:641,       Parameter: @sync_scope_cleanup_knowledge Len: 124 Value: 00-00-00-05-00-00-00-00-00-00-00-01-00-00-00-00-00...
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:642,       Parameter: @sync_check_concurrency Value: 1
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:643,       Parameter: @sync_scope_timestamp Value: 626495
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:45:643,       Parameter: @sync_row_count Value: Skipped since Not Input/InputOutput
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:46:822,    Rows affected: 1
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:46:824, Committing transaction
    VERBOSE, SIM.vshost, 10, 09/10/2013 17:01:49:324, Closing Connection
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:49:338,       RowStorage: Cleaning file C:\Users\LN\AppData\Local\Temp\MATS_b0821009-e688-4a3d-bc09-b48d301e09e7\0bad1718-b244-424f-9e20-4ecbe0cc2bd9
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:49:341,       RowSorter: Deleting directory MATS_b0821009-e688-4a3d-bc09-b48d301e09e7
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:49:355,    EndSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:49:359,    EndSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    INFO   , SIM.vshost, 10, 09/10/2013 17:01:49:363,       SyncBatchProducer: Canceling Background enumeration thread. Waiting for cancellation event: False


    thanks & regards

    Nagaraj L

    Tuesday, September 10, 2013 5:33 PM
  • easy to spot on your logs that it took less than a minute to sync, but took almost a minute connecting to the databases
    Tuesday, September 10, 2013 11:37 PM
  • Yes i saw that for just establishing the Server connection its taking more than a minute,

    So what we need to come conclusion is:

    1. Problem in our VPN Network.

    2. Any Changes to be Done in Code.

    3. Any Suggestion

    what is the remedy for this problem...?

    thanks & regards

    Nagaraj L

     
    Wednesday, September 11, 2013 2:54 AM
  • you already answered your own question, you know the connection is slow, then go figure out why. is the server busy, is it a latency issue, hops, etc...
    Wednesday, September 11, 2013 3:40 AM
  • Hi JuneT,

    how can i get Sync Framework 2.1 bootstrapper packages

    thanks & regards

    Nagaraj L


    Tuesday, September 17, 2013 9:19 AM
  • Hi JuneT,

    I am getting the following error 

    Cannot enumerate changes at the RelationalSyncProvider because the remote peer is outdated. See the OutdatedDbSyncException that was thrown for more details.

    thanks & regards

    Nagaraj L

    Friday, September 20, 2013 12:13 PM
  • Cannot enumerate changes at the RelationalSyncProvider because the remote peer is outdated. See the OutdatedDbSyncException that was thrown for more details.
    Thursday, September 26, 2013 4:27 PM
  • check out metadata clean up on the API. the outdated peer error is pretty much in the documentation.
    Friday, September 27, 2013 1:36 AM
  • Hi JuneT,

    what is the difference in performance for using sqlce and sql express.

    Tuesday, October 15, 2013 12:07 PM