ACC97: No Common Point to Synchronize Replicas After Year 2000
This article was previously published under Q191916
This article has been archived. It is offered "as is" and will no longer be updated.
Advanced: Requires expert coding, interoperability, and multiuser skills.
When you try to synchronize two members of a replica set, and the current date on your computer is January 1, 2000 or later, 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.
The Microsoft Jet database engine 3.5 expression service mishandles dateentries in the MSysExchangeLog table in replicas. When a replica set thatwas created before the year 2000 is compacted after the year 2000, anyexchange information relating to synchronizations after the year 2000 isdeleted from the MSysExchangeLog table. Once this information is deleted,the generation information in the MSysExchangeLog table and theMSysGenHistory table does not match, and the replicas cannot besynchronized.
To prevent this problem from happening perform one of the following methods:
- Obtain and install Microsoft Office 97 Service Release 2. For more information about getting this Service Release, see the followingarticle in the Microsoft Knowledge Base:151261 OFF97: How to Obtain and Install MS Office 97 SR-2
- Obtain latest version of the Microsoft Jet 3.5 Database Engine from the Microsoft Web site; this file contains the updated version 3.51 of the Microsoft Jet database engine. Forinformation on how to obtain Microsoft Jet database engine 3.51, see thethe following article in the Microsoft Knowledge Base:172733 ACC97: Updated Version of Microsoft Jet 3.5 Available for Download
This problem no longer occurs in Microsoft Office 97 Service Release 2(SR-2).
NOTE: Installing Office 97 SR-2 will not correct this problem if the error, from the Symptoms section, has already occurred.
When a synchronization occurs in Microsoft Access 97, an entry is made inthe MSysGenHistory table to relate the changes that were exchange duringthe synchronization to a generation number. An entry is also made in theMSysExchangeLog table to indicate the date/time, partner replicas, and lastgeneration exchanged for each synchronization. The Jet database engine usesthese entries during each synchronization to determine which generations(changes) need to be exchanged between the two replicas. If one of themembers requires a generation that is no longer being tracked by the secondmember, then there is no common point to start the synchronization, and thesynchronization will fail.
When a replica set that was created before the year 2000 is used after theyear 2000, erroneous dates are entered into these tables. The erroneousdates make it appear that an exchange that was actually performed onJanuary 1, 2000 was performed on January 1, 100. When the database iscompacted, any entries in the MSysExchangeLog table that exceed thereplica's retention period are deleted. Because records entered in the year100 exceed that period of time, they are deleted. Also, references to allbut the last generation are deleted from the MSysGenHistory table. As aresult of these deletions, the next time a synchronization is performed,the generations that need to be exchanged according to the MSysExchangeLogtable will no longer exist in the MSysGenHistory table. At this point youreceive the error described in the "Symptoms" section of this article.
Steps to Reproduce Problem
- In Control Panel, double-click the Date/Time icon, and set the system date on your computer to December 10, 1999.
- Make a copy of the Northwind.mdb sample database that comes with Microsoft Access 97 and rename it to DM.mdb.
- Open DM.mdb and convert it to a Design Master.
- Create two new replicas named Rep1.mdb and Rep2.mdb.
- In DM.mdb, open the Shippers table and add a record.
- Synchronize DM.mdb to Rep1.mdb, and then compact both databases.
- Synchronize DM.mdb to Rep2.mdb, and then compact both databases.
- In Control Panel, double-click the Date/Time icon, and set the system date on your computer to January 10, 2000.
- Open DM.mdb and make a change to the Shippers table.
- Synchronize DM.mdb and Rep1.mdb.
- Compact DM.mdb.
- Synchronize DM.mdb and Rep2.mdb.
synchronizing synchronized pra
Article ID: 191916 - Last Review: 10/10/2013 20:48:36 - Revision: 3.1
Microsoft Access 97 Standard Edition
- kbnosurvey kbarchive kbbug kberrmsg kbfix KB191916