Microsoft KB Archive/305039

= INF: -ForceConvergenceLevel Merge Agent Parameter is not Documented =

Article ID: 305039

Article Last Modified on 10/3/2003

-

APPLIES TO


 * Microsoft SQL Server 2000 Standard Edition

-



This article was previously published under Q305039



SUMMARY
The -ForceConvergenceLevel parameter for the Merge Replication Agent is not documented in SQL Server 2000 Books Online. This article explains the function and use of the

-ForceConvergenceLevel parameter.



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 &quot;fix up&quot; 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.