Replication Failed - Exception in log files "Value was either too large or too small for a UInt64"

Applies to

> 2017.1.1 All Platforms

Description

Replication status is FAILED in Monitoring page

In <StonevoiceAS>\Var\Log\Replication.Service\Replication.log

you can see this exception

518 11:24:57.323 ERROR {FaxDB} [TaskSynchronizer] Synchronization failed: {
Exception Type {Replication.Engine.Exceptions.DatabaseSynchronizationException}
Message {Error synchronizing task FaxDB}
StackTrace {
   at Replication.Engine.Synchronization.TaskSynchronizer.RunDbSync(Node localNode, Node remoteNode, DatabaseReplicationTask task)
   at Replication.Engine.Synchronization.TaskSynchronizer.<>c__DisplayClass18_0.<ExecuteSynchronization>b__0()
   at Replication.Engine.Synchronization.TaskSynchronizer.WhileSendingKeepAliveAndUserNotifications(Node localNode, Node remoteNode, ReplicationTask task, Action action)
   at Replication.Engine.Synchronization.TaskSynchronizer.ExecuteSynchronization(Node localNode, Node remoteNode, ReplicationTask task, Int32 fileSystemSyncPort, Boolean syncDatabase, Boolean reelaborateMetadata)
   at Replication.Engine.Synchronization.TaskSynchronizer.<>c__DisplayClass10_0.<Sync>b__0(SyncAuthorization syncAuthorization, Boolean reelaborateMetadata)
   at Replication.Engine.Synchronization.TaskSynchronizer.SynchronizeTask(Node localNode, Node remoteNode, ReplicationTask task, Action`2 synchronizationAction)}
InnerException {
Exception Type {Microsoft.Synchronization.Data.DbSyncException}
Message {An unexpected error occurred when applying batch file . See the inner exception for more details.}
StackTrace {
   at Microsoft.Synchronization.Data.DbSyncBatchConsumer.ApplyBatches(DbSyncScopeMetadata scopeMetadata, DbSyncSession syncSession, SyncSessionStatistics sessionStatistics)
   at Microsoft.Synchronization.Data.RelationalSyncProvider.ProcessChangeBatch(ConflictResolutionPolicy resolutionPolicy, ChangeBatch sourceChanges, Object changeDataRetriever, SyncCallbacks syncCallbacks, SyncSessionStatistics sessionStatistics)
   at Microsoft.Synchronization.KnowledgeProviderProxy.ProcessChangeBatch(CONFLICT_RESOLUTION_POLICY resolutionPolicy, ISyncChangeBatch pSourceChangeManager, Object pUnkDataRetriever, ISyncCallback pCallback, _SYNC_SESSION_STATISTICS& pSyncSessionStatistics)
   at Microsoft.Synchronization.CoreInterop.ISyncSession.Start(CONFLICT_RESOLUTION_POLICY resolutionPolicy, _SYNC_SESSION_STATISTICS& pSyncSessionStatistics)
   at Microsoft.Synchronization.KnowledgeSyncOrchestrator.DoOneWaySyncHelper(SyncIdFormatGroup sourceIdFormats, SyncIdFormatGroup destinationIdFormats, KnowledgeSyncProviderConfiguration destinationConfiguration, SyncCallbacks DestinationCallbacks, ISyncProvider sourceProxy, ISyncProvider destinationProxy, ChangeDataAdapter callbackChangeDataAdapter, SyncDataConverter conflictDataConverter, Int32& changesApplied, Int32& changesFailed)
   at Microsoft.Synchronization.KnowledgeSyncOrchestrator.DoOneWayKnowledgeSync(SyncDataConverter sourceConverter, SyncDataConverter destinationConverter, SyncProvider sourceProvider, SyncProvider destinationProvider, Int32& changesApplied, Int32& changesFailed)
   at Microsoft.Synchronization.KnowledgeSyncOrchestrator.Synchronize()
   at Microsoft.Synchronization.SyncOrchestrator.Synchronize()
   at Replication.Engine.Synchronization.DatabaseSynchronizer.Sync(Node localNode, Node remoteNode, DatabaseReplicationTask task)
   at Replication.Engine.Synchronization.TaskSynchronizer.RunDbSync(Node localNode, Node remoteNode, DatabaseReplicationTask task)}
InnerException {
Exception Type {System.OverflowException}
Message {Value was either too large or too small for a UInt64.}
StackTrace {
   at System.Convert.ToUInt64(Int64 value)
   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(IDbConnection connection, ReadKnowledgeType readType)
   at Microsoft.Synchronization.Data.RelationalSyncProvider.InitializeChangeApplicationTransaction()
   at Microsoft.Synchronization.Data.RelationalSyncProvider.SingleTransactionApplyChangesAdapter.PrepareForApplyOrRetry(DataSet ds)
   at Microsoft.Synchronization.Data.DbSyncBatchConsumer.ApplyBatches(DbSyncScopeMetadata scopeMetadata, DbSyncSession syncSession, SyncSessionStatistics sessionStatistics)}

Cause

Microsoft Bug - Microsoft Sync Framework 2.1

https://support.microsoft.com/en-us/help/2703853/fix-system.overflowexception-value-was-either-too-large-or-too-small-error-message-when-you-perform-data-synchronization-by-using-sync-framework-2.1

Solution

Install KB2703853 (attached) with file execution in this order:

  1. Synchronization-KB2703853-v2.1-x86-ENU.msi
  2. ProviderServices-KB2703853-v2.1-x86-ENU.msi
  3. DatabaseProviders-KB2703853-v3.1-x86-ENU.msi

Reboot is not needed



Article ID: 500
Last updated: 01 Dec, 2017
Revision: 5
Imagicle AppSuite Cross Platform -> FAQ and Solutions -> Replication Failed - Exception in log files "Value was either too large or too small for a UInt64"
https://kbp.imagicle.com/kb/entry/500/