FIX: Pull Subscribers Experience Non-Convergence After Running sp_mergecleanupmetadata Against a Published Database (304703)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q304703
BUG #: 354845 (SHILOH_BUGS)

SYMPTOMS

Changes made to articles subscribed through a pull subscription do not converge with the Publisher.

This problem may occur if either of the two following actions take place:

  • You run metadata cleanup by executing the sp_mergecleanupmetatdata stored procedure against a published database.

  • You run the sp_reinitmergesubscription stored procedure against a publication with a pull Subscriber.

CAUSE

When a pull Subscriber is reinitialized, the information regarding which generations have already been exchanged with the Publisher is not properly reset, which can cause non-convergence.

RESOLUTION

To 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

Hotfix

NOTE: The following hotfix was created prior to Microsoft SQL Server 2000 Service Pack 2.

The English version of this fix should have the following file attributes or later:
File name       Platform
-------------------------
s80420i.exe     x86
				
NOTE: Due to file dependencies, the most recent hotfix or feature that contains the preceding files may also contain additional files.

WORKAROUND

Each time you run the sp_mergecleanupmetadata stored procedure against a publication with pull Subscribers, explicitly execute the sp_reinitmergepullsubscription stored procedure against each pull Subscriber to that publication (the one that was cleaned up).

If you are using the sp_reinitmergesubscription stored procedure to reinitialize pull Subscribers, use the sp_reinitmergepullsubscription stored procedure instead.

STATUS

Microsoft has confirmed that this is a problem in SQL Server 2000. This problem was first corrected in Microsoft SQL Server 2000 Service Pack 2.

MORE INFORMATION

This problem is not applicable to push subscriptions. Manually running metadata cleanup by using the sp_mergecleanupmetadata stored procedure is one way this problem manifests itself; therefore, use caution when you use the sp_mergecleanupmetadata stored procedure.

Starting with SQL Server 2000 Service Pack 1, metadata that exceeds the retention period specified when a publication is created is automatically cleaned up by the Merge Agent each time it synchronizes with a given Subscriber.

REFERENCES

For more information about Merge Replication Retention-Based Meta Data Clean Up, see section 5.7.5 of the SQL Server 2000 Service Pack 1 Readme.txt (sp1readme.htm).

For more information regarding how the merge replication system tables are used by the synchronization process, see the "How Merge Replication Works" topic in SQL Server Books Online.

Modification Type:MajorLast Reviewed:10/9/2003
Keywords:kbBug kbfix kbSQLServ2000preSP2Fix KB304703