FIX: Merge Agent Can Resend Changes for Filtered Publications (810688)



The information in this article applies to:

  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Enterprise Evaluation Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (MSDE)
  • Microsoft SQL Server 2000 Developer Edition 64 bit
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit

BUG #: 363211 (SHILOH_BUGS)

SYMPTOMS

Changes that SQL Server downloads to a subscriber can be sent back (uploaded) to the publisher on the next subsequent synchronization, even though there were no changes made to the rows at the subscriber. This is not expected behavior. After SQL Server downloads a row from a publisher, the row must not be uploaded to the publisher on a subsequent synchronization, unless the row was modified. This problem can occur under the following circumstances:
  • A merge publication contains articles that use subset filters and join filters.
  • A new row is inserted in a table that participates in a join filter, or an existing row is updated such that the row and its related rows move to a new partition.
  • In the process of expanding the subscriber's partition to find rows related to the newly inserted or updated row through join filters, the Merge Agent finds rows that must be sent to the subscriber that do not have a corresponding entry in the msmerge_contents table.
Note that this problem does not result in any data inconsistencies at the publisher.

RESOLUTION

Service pack information

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 How to obtain the latest SQL Server 2000 service pack

Hotfix information

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.

SQL Server 2000 Service Pack 2

This hotfix build is designed to be applied on a server that is running SQL Server 2000 Service Pack 2:
   Date         Time   Version         Size             File name
   -----------------------------------------------------------------------------

   18-Jan-2002  04:45  2000.80.568.0      29,244 bytes  Dbmslpcn.dll     
   30-Aug-2002  21:08                    786,432 bytes  Distmdl.ldf
   30-Aug-2002  21:08                  2,359,296 bytes  Distmdl.mdf
   11-Dec-2002  17:50                        180 bytes  Drop_repl_hotfix.sql
   02-Jul-2002  15:35  2000.80.650.0     107,088 bytes  Impprov.dll      
   19-Jul-2002  16:56                    774,516 bytes  Instdist.sql
   11-Dec-2002  17:50                      1,402 bytes  Inst_repl_hotfix.sql
   20-Aug-2002  16:24  2000.80.679.0     111,172 bytes  Logread.exe      
   29-Nov-2002  20:07  2000.80.711.0      90,692 bytes  Msgprox.dll      
   07-Apr-2002  02:08  2000.80.606.0      62,024 bytes  Odsole70.dll     
   03-Jan-2002  01:59                     18,185 bytes  Qfe356326.sql
   20-Aug-2002  16:47  2000.80.679.0     135,748 bytes  Qrdrsvc.exe     
   26-Aug-2002  22:49  2000.80.679.0     406,088 bytes  Rdistcom.dll    
   04-Oct-2001  01:36                    437,302 bytes  Replcom.sql
   20-Aug-2002  16:33  2000.80.679.0     152,136 bytes  Replmerg.exe    
   25-Nov-2002  21:43                  1,004,990 bytes  Replmerg.sql
   29-Nov-2002  20:07  2000.80.711.0     221,768 bytes  Replprov.dll
   29-Nov-2002  20:07  2000.80.711.0     303,688 bytes  Replrec.dll 
   04-Oct-2001  01:36                    986,906 bytes  Replsys.sql
   04-Oct-2001  01:36                    881,228 bytes  Repltran.sql
   26-Aug-2002  22:49  2000.80.679.0     283,208 bytes  Rinitcom.dll
   16-Sep-2002  22:31                    390,045 bytes  Securityhotfix.sql
   26-Aug-2002  22:49  2000.80.679.0      28,672 bytes  Sqlagent.dll     
   26-Aug-2002  18:39  2000.80.679.0     311,872 bytes  Sqlagent.exe     
   28-Aug-2002  16:32  2000.80.679.0      49,152 bytes  Sqlagent.rll
   26-Aug-2002  22:49  2000.80.679.0      53,824 bytes  Sqlcmdss.dll
   28-Aug-2002  16:40  2000.80.679.0      12,288 bytes  Sqlcmdss.rll
   24-Oct-2002  17:37  2000.80.695.0     176,696 bytes  Sqlmap70.dll
   11-Dec-2002  19:42  2000.80.715.0   7,467,089 bytes  Sqlservr.exe
   01-Nov-2002  18:56  2000.80.698.0      45,644 bytes  Sqlvdi.dll  
   18-Jan-2002  04:45  2000.80.568.0      29,244 bytes  Ssmslpcn.dll
   04-Dec-2002  23:34  2000.80.712.0      82,492 bytes  Ssnetlib.dll     
   27-Nov-2002  01:14  2000.80.709.0      25,148 bytes  Ssnmpn70.dll     
   07-Apr-2002  02:08  2000.80.606.0      70,208 bytes  Xplog70.dll      
   07-Apr-2002  02:08  2000.80.606.0      53,828 bytes  Xpqueue.dll      
   07-Apr-2002  02:08  2000.80.606.0     156,228 bytes  Xprepl.dll       
   12-Jul-2002  01:00  2000.80.658.0     279,104 bytes  Xpstar.dll       
   16-Sep-2002  23:12  2000.80.686.0      98,872 bytes  Xpweb70.dll      
				

SQL Server 2000 Service Pack 3

This hotfix build is designed to be applied on a server that is running SQL Server 2000 Service Pack 3:
   Date         Time   Version         Size             File name
   ---------------------------------------------------------------------------
   08-Feb-2003  05:43                    786,432 bytes  Distmdl.ldf
   08-Feb-2003  05:43                  2,359,296 bytes  Distmdl.mdf
   30-Jan-2003  01:55                        180 bytes  Drop_repl_hotfix.sql
   30-Jan-2003  05:18                    746,470 bytes  Instdist.sql
   30-Jan-2003  01:55                      1,402 bytes  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   08-Feb-2003  03:53                  1,065,895 bytes  Replmerg.sql
   08-Feb-2003  06:40  2000.80.765.0     221,768 bytes  Replprov.dll    
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   30-Jan-2003  05:18                  1,084,318 bytes  Replsys.sql
   08-Feb-2003  06:40  2000.80.765.0     176,696 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   08-Feb-2003  06:41  2000.80.765.0   7,528,529 bytes  Sqlservr.exe     
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   08-Feb-2003  06:40  2000.80.765.0      82,492 bytes  Ssnetlib.dll           
				
Note: Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.

For this fix to take affect, you must either:

  • Drop, and then re-create the publication that is experiencing the problem. If you use this method, all the subscribers must re-subscribe.

    -or-
  • Generate a new snapshot. If you use this method, you must reinitialize all the subscribers.

Note: You must apply this fix to all the nodes in the merge replication topology.


STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.

MORE INFORMATION

This bug does not result in any data inconsistencies.

This hotfix is also available in the MS03-031 security patch. For additional information about the MS03-031 security patch, click the following article number to view the article in the Microsoft Knowledge Base:

821277 MS03-031: Security patch for SQL Server 2000 Service Pack 3


Modification Type:MinorLast Reviewed:9/27/2005
Keywords:kbHotfixServer kbQFE kbQFE kbSQLServ2000preSP4fix kbfix kbbug KB810688 kbAudDeveloper