FIX: Merge Replication Non-Convergence Fixes in SQL Server 2000 SP2 (309400)
The information in this article applies to:
- Microsoft SQL Server 2000 (all editions) 8.0
- Microsoft SQL Server 2000 (all editions) SP1
This article was previously published under Q309400
BUG #: 355551 (SHILOH_BUGS)
BUG #: 354850 (SHILOH_BUGS)
BUG #: 354716 (SHILOH_BUGS)
BUG #: 353578 (SHILOH_BUGS)
SYMPTOMS
Under some circumstances, you may find that changes have not replicated properly to some replicas in a merge replication topology, a state known as non-convergence. This article documents some merge replication non-convergence problems in SQL Server 2000 that have been corrected in SQL Server 2000 Service Pack 2.
CAUSE
Here is a list of the SQL Server 2000 non-convergence issues that are fixed by SQL Server 2000 Service Pack 2:
Bug
Number Description
----------------------------------------------------------------------
#355551 Merge metadata cleanup (either using retention-based
cleanup introduced in SQL Server 2000 Service Pack 1
or using the old-style metadata cleanup through the
sp_mergecleanupmetatdata stored procedure) on one side
of a replication topology (that is, at either the
publisher or the subscriber, but not both), followed by
an update of a row on the side that was not cleaned
up can result in non-convergence. This problem only
occurs when the article in question is using
column-level conflict tracking, which is the default.
#354850 When the merge replication reconciler cannot apply an
update at the destination replica, and SQL Server
retries the update operation, non-convergence can
result. The lineage and COLV metadata in the
MSmerge_contents table at the source and destination
replicas is the same.
#354716 When SQL Server localizes interrupted generations,
changes to rows in the MSmerge_genhistory and
MSmerge_contents table are made in separate
transactions. If another Merge Agent enumerates
changes between these transaction boundaries, the
Merge Agent incorrectly assumes that the generation
was received at the destination, resulting in non-
convergence.
#353578 Local subscribers can encounter merge non-convergence
under stress conditions. The Merge Agent (using an
extended stored procedure) reads merge metadata for a
particular row, caches that metadata, makes changes to
the metadata during "metadata proxying," and then writes
that metadata back to the destination replica. If a
subscriber makes a change to the merge metadata in the
small window that exists before the modified metadata
is written to the destination replica,
non-convergence can result.
RESOLUTIONTo resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack
WORKAROUND
Here are two methods that you can use to work around this problem:
- In many cases, you can alleviate problems with merge replication non-convergence through dummy updates. This simply entails updating a particular row so that you update all of the columns in the row to themselves. To merge replication, this updates the metadata kept in the merge system tables, making the row eligible for replication during the next merge session.
- In other cases, you can use the -ForceConvergenceLevel merge agent parameter to work around non-convergence problems. For more information about the use of -ForceConvergenceLevel, see the following article in the Microsoft Knowledge Base:
305039 INF: -ForceConvergenceLevel Merge Agent Parameter is not Documented
STATUSMicrosoft has confirmed that this is a problem in Microsoft SQL Server 2000. This problem was first corrected in Microsoft SQL Server 2000 Service Pack 2. REFERENCESFor additional information other merge replication non-convergence fixes in SQL Server 2000 Service Pack 2, click the article numbers below
to view the articles in the Microsoft Knowledge Base:
304703 FIX: Pull Subscribers Experience Non-Convergence After Running sp_mergecleanupmetadata Against a Published Database
304222 FIX: Merge Replication Non-Convergence Occurs with Local Subscribers when Published Table has 32 or More Columns
Modification Type: | Major | Last Reviewed: | 10/3/2003 |
---|
Keywords: | kbbug kbfix KB309400 |
---|
|