Я синхронизирую свое производство SQL Server 2008 R2 db с моим сервером SQL Server 2008 R2 Express с отказоустойчивостью с использованием Microsoft Sync Framework 2.1, и он отлично работал некоторое время, а затем через несколько дней синхронизации источника (производственного SQL Server) запускается нехватка памяти (ОЗУ) из-за синхронизации.
Это не прекратило работать или что-то еще, или привести к сбою транзакций веб-сайта, но Sync Framework начинает бросать нижеприведенную ошибку, если на рабочем поле имеется небольшой барабан.
Кто-нибудь видел это или имеет представление, почему он это делает, и если есть исправление?
Вот ошибка.
Microsoft.Synchronization.Data.DbSyncException: An unexpected exception occurred in a background thread that is enumerating
changes. See the inner exception for more details.
System.Data.SqlClient.SqlException: There is insufficient system
memory in resource pool 'internal' to run this query.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,
RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean
async, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
method, TaskCompletionSource
1 completion, Int32 timeout, Task& task,
Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at System.Data.SqlClient.SqlCommand.DeriveParameters()
at System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand
command)
at Microsoft.Synchronization.Data.ManagementUtils.DeriveParameters(SqlCommand
command, IEnumerable`1 columns)
at Microsoft.Synchronization.Data.SqlServer.SqlSyncAdapter.SetCommandSessionParameters(IDbCommand
command, String commandName)
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 Microsoft.Synchronization.KnowledgeProviderProxy.GetChangeBatch(UInt32
dwBatchSize, ISyncKnowledge pSyncKnowledge, ISyncChangeBatch&
ppChangeBatch, Object& ppUnkDataRetriever)
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()