locked
Overflow Exception RRS feed

  • Question

  • Hi

    We have successfully implemented  data base sync in one of our project and most of the clients are happy with what we have done and they all have a 64 bit machine. Howecver we have a client who is using 64 bit windows 7 machine and during the incremental sync process we are getting the following error

    Error in GetChanges()Value was either too large or too small for a UInt64

    I am using "RelationalSyncProvider" and Sync Framework version 2.1

    Here is the stack trace

    System.OverflowException: Value was either too large or too small for a UInt64.     at System.Int64.System.IConvertible.ToUInt64(IFormatProvider provider)     at System.Convert.ToUInt64(Object value, IFormatProvider provider)     at Microsoft.Synchronization.Data.SyncUtil.ParseTimestamp(Object obj, UInt64& timestamp)     at Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeHandler.GetLocalTimestamp(IDbConnection connection, IDbTransaction transaction)     at Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeHandler.ReadScope(IDbConnection connection, IDbTransaction transaction, ReadKnowledgeType readType, ReadForgottenKnowledgeType readFKtype)     at Microsoft.Synchronization.Data.SyncScopeHandlerBase.ReadScope(IDbTransaction transaction, ReadKnowledgeType readType, ReadForgottenKnowledgeType readFKtype)     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 Continuum.Local.Server.SyncWebService.GetChanges(UInt32 batchSize, SyncKnowledge destinationKnowledge

    I am reposting this problem again with an expectation of getting a workaround for this problem ?.

     


    gladson


    Monday, September 5, 2011 9:38 AM

All replies

  • Is their anyone in this forum or microsoft who can help me on this?.
    gladson
    Wednesday, September 7, 2011 9:08 AM
  • Hi Guys,

    I found that all tracking tables for “XYZ” database have a – ve “local_create_peer_timestamp” value (-1614977268,
    -1614977268). Since the sync framework’s “GetChangeBatch” method expects a parameter of type UInt64 and the "XYZ" database tracking tables have a –ve value which is outside the allowed lowerlimit of UInt the framework is throwing up the “overflow exception”.  

     

    When I execute 

     @@DBTS+1 returns a -ve value where as for other databases this returs a +ve value.

     Any thougts on this?

     

    select

    Thursday, September 15, 2011 7:07 AM
  • Hi - we are running into this issue now after many years of sync framework being in service. Any assistance on how to resolve?

    Jeff Taynton

    Sunday, December 23, 2018 9:01 PM