MORE INFORMATION
Here is the syntax that you use for the -
ForceConvergenceLevel parameter:
-ForceConvergenceLevel 0 | 1 | ( 2 (Publisher | Subscriber | Both) )
The -
ForceConvergenceLevel parameter is useful in situations where you find that changes are not being converged during a merge session (a problem known as replication non-convergence).
The-
ForceConvergenceLevel parameter can work around problems in the following situations:
- Some generations at the source replica were skipped.
-or-
- Lineage values in MSmerge_contents system table have become logically incorrect.
When you pass the -
ForceConvergenceLevel parameter to the Merge Agent with a value of one (1), the Merge Agent (during the closing of currently open generations and the opening of new generations) makes changes to generation values stored in the
MSmerge_contents system table and the
MSmerge_tombstone system table so that any skipped generations are enumerated. This ensures that any changes represented by those generations are eligible for reconciliation during the next merge session. One caveat, however, is that the generation cannot already exist at the destination replica. That is, there cannot already be a row in the
MSmerge_genhistory system table for that generation at the destination.
When you pass the -
ForceConvergenceLevel parameter to the Merge Agent with a value of two (2), the Merge Agent performs all of the generation handling described previously, and also runs a stored procedure at the replica specified to "fix up" any incorrect lineage values in the
MSmerge_contents system table. The
lineage column in the
MSmerge_contents system table is a
varbinary column that stores information about row-level versioning. The
lineage column is used in merge change tracking and conflict detection along with the
colv1 column in the
MSmerge_contents system table. Incorrect values in the
lineage column or
colv1 column may lead to changes not being properly converged.
It is important to note that this Merge Agent parameter is not guaranteed to correct non-convergence problems. There may be a case in which changes are skipped, but the changes were skipped due to another problem. Note that no such problems are currently known to occur. Additionally, performance may be impacted when you run the Merge Agent with the -
ForceConvergenceLevel parameter in a production environment.
REFERENCES
For additional information about known issues that are not subject to a workaround with the -ForceConvergenceLevel parameter, 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
304551 FIX: Merge Publishing with Vertical Filters Results in Nonconvergence
304222 FIX: Merge Replication Non-Convergence Occurs with Local Subscribers when Published Table has 32 or More Columns