Applies To: SQL Server 2016
|Product Name||SQL Server|
|Component||SQL Server Database Engine|
|Message Text||The merge process was unable to change generation history at the '%1'. When troubleshooting, restart the synchronization with verbose history logging and specify an output file to which to write.|
This error is typically raised as a result of contention in merge replication system tables that have grown excessively large. Large system tables are typically caused by a long publication retention period, because metadata must be stored in these tables until the retention period is reached.
To resolve the issue:
Decrease the value of the -DownloadGenerationsPerBatch and -UploadGenerationsPerBatch parameters for the Merge Agent to allow processing to continue while you address the underlying issue causing the error. Agent parameters can be specified in agent profiles and on the command line. For more information, see:
Specify the lowest setting possible for the publication retention period. For more information, see Subscription Expiration and Deactivation.
As part of maintenance for merge replication, occasionally check the growth of the system tables associated with merge replication: MSmerge_contents, MSmerge_genhistory, and MSmerge_tombstone, MSmerge_current_partition_mappings, and MSmerge_past_partition_mappings. Periodically re-index these tables. For more information, see Reorganize and Rebuild Indexes.