ACC95: No Common Point to Synchronize Replicas After Year 2000 (221220)



The information in this article applies to:

  • Microsoft Access for Windows 95 7.0

This article was previously published under Q221220
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.0 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.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem no longer occurs in the Office 95 Year 2000 Update.

To download the the Office 95 Year 2000 Update, please visit the following Microsoft Web site:

MORE INFORMATION

When a synchronization occurs in Microsoft Access 7.0, 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 7.0 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.
  11. Synchronize DM.mdb and Rep2.mdb.
Note that you receive the error described in the "Symptoms" section of this article.

Modification Type:MinorLast Reviewed:8/9/2004
Keywords:kbdownload kbbug kbpending KB221220