Не документированный параметр: ForceConvergenceLevel для Merge Agent

ПУБЛИКАЦИИ  

По материалам статьи Микрософт: INF: -ForceConvergenceLevel Merge Agent Parameter is not Documented (Q305039)

Информация в этой статье относится ко всем изданиям Microsoft SQL Server 2000

Параметр -ForceConvergenceLevel для Merge Replication Agent не документирован в SQL Server 2000 Books Online. Эта статья объясняет его функцию и особенности использования параметра -ForceConvergenceLevel. Ниже представлен синтаксис, который используется для параметра -ForceConvergenceLevel:


-ForceConvergenceLevel 0 | 1 | ( 2 (Publisher | Subscriber | Both) )

Параметр -ForceConvergenceLevel полезен в ситуациях, когда изменения не сходятся в течение сеанса Merge (проблема известна, как не сходимость репликации). Параметр ForceConvergenceLevel поможет разрешению проблем в следующих ситуациях:

- Когда были пропущены некоторые порождения (generation) в исходной, точной копии.
- Когда значения Lineage в системной таблице MSmerge_contents стали логически неправильными.

Когда Вы передаёте параметр -ForceConvergenceLevel для Merge Agent со значением, равным единице (1), Merge Agent (в течение закрытия актуальных, открытых порождений, и открытия новых порождений) делает изменения значений порождения, сохраняемых в системных таблицах MSmerge_contents и MSmerge_tombstone так, чтобы любые пропущенные порождения были учтены. Это гарантирует, что любые изменения, представленные этими порождениями имеют право на согласование в течение следующего, Merge сеанса. Однако, существует одно ограничение, которое определяет, что порождение уже не может существовать в точной копии адресата. То есть уже не может быть строки в системной таблице MSmerge_genhistory для этого порождения в адресате.
Когда Вы передаете параметр -ForceConvergenceLevel для Merge Agent со значением, равным двойке (2), Merge Agent исполняет по описанному предварительно сценарию всё порождение и также выполняет хранимую процедуру на точной копии, указанной для исправления ("fix up") любых неправильных значений lineage в системной таблице MSmerge_contents. Столбец lineage в системной таблице MSmerge_contents - это varbinary столбец, который хранит информацию об уровне строки versioning. Столбец lineage используется при отслеживании изменений в Merge и при обнаружении конфликтов, связанных со столбцом colv1 в системной таблице MSmerge_contents. Неправильные значения в столбце lineage или colv1 могут привести к не правильным изменениям.
Важно понять, что этот параметр Merge Agent гарантированно не исправит проблемы не сходимости. Возможны случаи, когда изменения были пропущены, но из-за других проблем. Обратите внимание, что речь идёт о тех проблемах, которые известны на сегодняшний день. В дополнение, можно отметить, что когда Вы используете в промышленной среде Merge Agent с параметром -ForceConvergenceLevel, это может повлиять на эффективность.

Для дополнительной информации об известных проблемах, которые - не возможно обойти с помощью параметра -ForceConvergenceLevel, изучите следующие статьи Microsoft Knowledge Base:
Q304703 FIX: Pull Subscribers Experience Non-Convergence After Running sp_mergecleanupmetadata Against a Published Database
Q304551 FIX: Merge Publishing with Vertical Filters Results in Nonconvergence
Q304222 FIX: Merge Replication Non-Convergence Occurs with Local Subscribers when Published Table has 32 or More Columns


Перевод: Александра Гладченко  2001г.

ПУБЛИКАЦИИ

Скачать электронную карту Ангарска бесплатно
Сайт управляется системой uCoz