ACC97: No Common Point to Synchronize Replicas After Year 2000

ID: Q191916


The information in this article applies to:

Advanced: Requires expert coding, interoperability, and multiuser skills.


SYMPTOMS

When you try to synchronize two members of a replica set that was created before the year 2000, and the current date on your computer is after the year 2000, you may receive the following error message:

Synchronization between replica '<source replica>' and replica '<target replica>' failed. Two members of the replica set cannot be synchronized because there is no common point to start the synchronization.
When you click OK, you are left at the Synchronize Replica dialog box.


CAUSE

The Microsoft Jet database engine 3.5 expression service mishandles date entries in the MSysExchangeLog table in replicas. When a replica set that was created before the year 2000 is compacted after the year 2000, any exchange information relating to synchronizations after the year 2000 is deleted from the MSysExchangeLog table. Once this information is deleted, the generation information in the MSysExchangeLog table and the MSysGenHistory table does not match, and the replicas cannot be synchronized.


RESOLUTION

To resolve this problem, use either of the following methods:

-or-


STATUS

Microsoft has confirmed this to be a problem in Microsoft Access 97. This problem no longer occurs in Microsoft Office 97 Service Release 2 (SR-2).


MORE INFORMATION

When a synchronization occurs in Microsoft Access 97, an entry is made in the MSysGenHistory table to relate the changes that were exchange during the synchronization to a generation number. An entry is also made in the MSysExchangeLog table to indicate the date/time, partner replicas, and last generation exchanged for each synchronization. The Jet database engine uses these entries during each synchronization to determine which generations (changes) need to be exchanged between the two replicas. If one of the members requires a generation that is no longer being tracked by the second member, then there is no common point to start the synchronization, and the synchronization will fail.

When a replica set that was created before the year 2000 is used after the year 2000, erroneous dates are entered into these tables. The erroneous dates make it appear that an exchange that was actually performed on January 1, 2000 was performed on January 1, 100. When the database is compacted, any entries in the MSysExchangeLog table that exceed the replica's retention period are deleted. Because records entered in the year 100 exceed that period of time, they are deleted. Also, references to all but the last generation are deleted from the MSysGenHistory table. As a result of these deletions, the next time a synchronization is performed, the generations that need to be exchanged according to the MSysExchangeLog table will no longer exist in the MSysGenHistory table. At this point you receive the error described in the "Symptoms" section of this article.

Steps to Reproduce Problem

  1. In Control Panel, double-click the Date/Time icon, and set the system date on your computer to December 10, 1999.


  2. Make a copy of the Northwind.mdb sample database that comes with Microsoft Access 97 and rename it to DM.mdb.


  3. Open DM.mdb and convert it to a Design Master.


  4. Create two new replicas named Rep1.mdb and Rep2.mdb.


  5. In DM.mdb, open the Shippers table and add a record.


  6. Synchronize DM.mdb to Rep1.mdb, and then compact both databases.


  7. Synchronize DM.mdb to Rep2.mdb, and then compact both databases.


  8. In Control Panel, double-click the Date/Time icon, and set the system date on your computer to January 10, 2000.


  9. Open DM.mdb and make a change to the Shippers table.


  10. Synchronize DM.mdb and Rep1.mdb.


  11. Compact DM.mdb.


  12. Synchronize DM.mdb and Rep2.mdb.


Note that you receive the error described in the "Symptoms" section of this article.

Additional query words: synchronizing synchronized


Keywords          : kberrmsg kbdta kb2000 RplConf RplGen 
Version           : WINDOWS:97
Platform          : WINDOWS 
Issue type        : kbbug 

Last Reviewed: July 1, 1999