none
System.OverflowException: Value was either too large or too small even after applying http://support.microsoft.com/kb/2703853

    Question

  • Hi,

    Yesterday after 3 years of using Sync FX 2.1 we've seen for the first time the following error:

    2013-10-03 08:53:23.7310 Swiss.CLO.Service.Sync.Commun.LibraryCommunSyncService.GetChanges Warn GetChanges Microsoft.Synchronization.Data.DbSyncException: Cannot enumerate changes at the RelationalSyncProvider for table 'Documents'.  Check the inner exception for any store-specific errors. ---> System.OverflowException: Value was either too large or too small for a UInt64.
       at System.Int64.System.IConvertible.ToUInt64(IFormatProvider provider)
       at Microsoft.Synchronization.Data.SyncUtil.ParseTimestamp(Object obj, UInt64& timestamp)
       at Microsoft.Synchronization.Data.DbDataReaderHandler.BuildCreateVersion()
       at Microsoft.Synchronization.Data.RelationalSyncProvider.GetRowEnumerationState(DbDataReaderHandler readerHandler, SyncKnowledge knowledgeToCompare)
       at Microsoft.Synchronization.Data.RelationalSyncProvider.EnumerateChangesInBatchesInternal(Object batchProducer)
       --- End of inner exception stack trace ---
       at Microsoft.Synchronization.Data.DbSyncBatchProducer.DequeueBatch()
       at Microsoft.Synchronization.Data.RelationalSyncProvider.ConsumeBatchFromProducer(DbSyncScopeMetadata scopeMetadata)
       at Microsoft.Synchronization.Data.RelationalSyncProvider.GetChanges(DbSyncScopeMetadata scopeMetadata, DbSyncSession DbSyncSession, UInt32 memoryBatchSize)
       at Microsoft.Synchronization.Data.RelationalSyncProvider.GetChangeBatch(UInt32 batchSize, SyncKnowledge destinationKnowledge, Object& changeDataRetriever)
       at Swiss.CLO.Service.Sync.Commun.LibraryCommunSyncService.GetChanges(UInt32 batchSize, SyncKnowledge destinationKnowledge)

    We've checked the select @@dbts returning a >  2147483647 value.

    So we've installed corresponding HotFix http://support.microsoft.com/kb/2703853

    and restart the server

    But we still got this error coming up.

    The patch seems to be applied correctly

    Does anybody have a idea?

    Thanks

    Thursday, October 03, 2013 7:15 AM

All replies

  • can you check if your app is indeed loading the correct/updated assemblies? maybe check your bin folder just in case the old assemblies has been copied there...
    • Proposed as answer by gedo2 Friday, October 04, 2013 1:34 PM
    Friday, October 04, 2013 3:06 AM
  • Hi June. 
    Thank you for your help. 

    I complete the question of Pop with my questions:

    You've mentionned in one other thread related to "Negative timestamp value in a database which is provisioned for Sync" a workaround :
    by creating a new database, 
    by importing the data of our existing problem database, 
    then doing a sync on the new database instead.

    After the importation of all data in the new database, we have to provision all scope of synchronisation.
    What is the difference by doing a unprovision from all scope on the existing problem database(or on a copy of this database) and after to provison again all scope?
    Could you please give us more detailled information about this workaround?




    • Edited by gedo2 Monday, October 07, 2013 6:02 AM
    Friday, October 04, 2013 2:04 PM
  • Hi JuneT,

    My App is in this case a WCF service hosted in IIS.

    We're sychronizing SQLCE DBs with a central SQLServer over WCF. 1 "big" commun scope and some template scope depending from the userId.

    In the bin folder from our WebApp there is no dll related with syncFx

    We also did only install SyncFx 2.1 64bit , (no x86, no SDK) on this server

    assemblies in the gac are also from 04.05.2012....

    BUT we only apply the Fix on the server side, not on client side.

    I've tried the put the SyncFx Dll in the bin folder to somehow force the usage -> same exception.

    In the meantime I've let the service run in info mode:

    INFO   , w3wp, 10, 10/03/2013 11:35:51:138,    BeginSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    INFO   , w3wp, 10, 10/03/2013 11:35:51:201,    EndSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    INFO   , w3wp, 12, 10/03/2013 11:35:51:279,    BeginSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    INFO   , w3wp, 20, 10/03/2013 11:35:51:482,    BeginSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560, Remote data cache size requested: 1024 Kb, Local data cache size: 2048 Kb
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560, Enumeration data cache size selected: 1024 Kb
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560, ----- Checking for Outdated Peer -----
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560,    Destination is not outdated
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560, --- End Checking for Outdated Peer ---
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560,
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560, Memory DataCache Batching enabled. DataCache Size: 1024 Kb
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560,       SyncBatchProducer: Starting Background enumeration thread.
    INFO   , w3wp, 9, 10/03/2013 11:35:51:560,       SyncBatchProducer: Producer queue empty.  Waiting for queue availablility event
    ERROR  , w3wp, 6, 10/03/2013 11:35:51:575, RelationalSyncProvider.BatchedEnum: Caught exception while enumerating changes
    System.OverflowException: Value was either too large or too small for a UInt64.
       at System.Int64.System.IConvertible.ToUInt64(IFormatProvider provider)
       at Microsoft.Synchronization.Data.SyncUtil.ParseTimestamp(Object obj, UInt64& timestamp)
       at Microsoft.Synchronization.Data.DbDataReaderHandler.BuildCreateVersion()
       at Microsoft.Synchronization.Data.RelationalSyncProvider.GetRowEnumerationState(DbDataReaderHandler readerHandler, SyncKnowledge knowledgeToCompare)
       at Microsoft.Synchronization.Data.RelationalSyncProvider.EnumerateChangesInBatchesInternal(Object batchProducer)

    INFO   , w3wp, 6, 10/03/2013 11:35:51:575,    RelationalSyncProvider.BatchedEnum: --- End Table "Documents" ---
    INFO   , w3wp, 6, 10/03/2013 11:35:51:575,
    ERROR  , w3wp, 6, 10/03/2013 11:35:51:591,       RelationalSyncProvider.BatchedEnum: Background thread had an unexpected exception. Queue it.
    ERROR  , w3wp, 6, 10/03/2013 11:35:51:591,       SyncBatchProducer: Background enumeration encountered an error.
    INFO   , w3wp, 6, 10/03/2013 11:35:51:591,       RelationalSyncProvider.BatchedEnum: Finished enumerating all adapters.
    INFO   , w3wp, 9, 10/03/2013 11:35:51:591,       SyncBatchProducer: Queue availablility event fired
    INFO   , w3wp, 6, 10/03/2013 11:35:51:591,       RelationalSyncProvider.BatchedEnum: Setting BgdEnumInProcess to false, BgdEnumCompleted to True and setting Cancellation event.
    INFO   , w3wp, 9, 10/03/2013 11:35:51:591,       SyncBatchProducer: Canceling Background enumeration thread. Waiting for cancellation event: True
    INFO   , w3wp, 9, 10/03/2013 11:35:51:591,       SyncBatchProducer: Canceling Background enumeration thread. Cancellation event fired.
    ERROR  , w3wp, 9, 10/03/2013 11:35:51:591, Caught exception while getting changes: Microsoft.Synchronization.Data.DbSyncException: Cannot enumerate changes at the RelationalSyncProvider for table 'Documents'.  Check the inner exception for any store-specific errors. ---> System.OverflowException: Value was either too large or too small for a UInt64.
       at System.Int64.System.IConvertible.ToUInt64(IFormatProvider provider)
       at Microsoft.Synchronization.Data.SyncUtil.ParseTimestamp(Object obj, UInt64& timestamp)
       at Microsoft.Synchronization.Data.DbDataReaderHandler.BuildCreateVersion()
       at Microsoft.Synchronization.Data.RelationalSyncProvider.GetRowEnumerationState(DbDataReaderHandler readerHandler, SyncKnowledge knowledgeToCompare)
       at Microsoft.Synchronization.Data.RelationalSyncProvider.EnumerateChangesInBatchesInternal(Object batchProducer)
       --- End of inner exception stack trace ---
       at Microsoft.Synchronization.Data.DbSyncBatchProducer.DequeueBatch()
       at Microsoft.Synchronization.Data.RelationalSyncProvider.ConsumeBatchFromProducer(DbSyncScopeMetadata scopeMetadata)
       at Microsoft.Synchronization.Data.RelationalSyncProvider.GetChanges(DbSyncScopeMetadata scopeMetadata, DbSyncSession DbSyncSession, UInt32 memoryBatchSize)
    INFO   , w3wp, 9, 10/03/2013 11:35:51:716,    EndSession() called on Provider SqlSyncProvider, Microsoft.Synchronization.Data.SqlServer, Version=3.1.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

    Our issue seams to be only on this Commun scope (using Batching), other template scopes (Currently no Batch files needed) are working fine

    Any other Idea?

    Thanks

    S

    Monday, October 07, 2013 10:59 AM