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:
- Obtain and install Microsoft Office 97 Service Release 2. For more information about getting this Service Release, see the following
article in the Microsoft Knowledge Base:
Q151261 OFF97: How to Obtain and Install MS Office 97 SR-2
-or-
- 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. For
information on how to obtain Microsoft Jet database engine 3.51, see the
the following article in the Microsoft Knowledge Base:
Q172733 ACC97: Updated Version of Microsoft Jet 3.5 Available for Download
STATUS
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
- 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.
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