Re: Is there a way to tell if two replicas need to be synced without starting the sync process

Tech-Archive recommends: Fix windows errors by optimizing your registry



Regardless of whether we agree or not, there is some educational value
in determining which tables are updated so that the direct
synchronization process knows whether or not to update (my assumption
is that it doesn't go through table by table to make this
determination).

Here is what my research suggests so far:

1) The maximum value of s_Generation in MSysGenHistory would seem to
indicate the number of times a replicated database has been synched.

2) When deleting a single record in a replicated back-end table, I
noticed that the number of records in MSysTombstone increased by one.

However, I have been unable to find a change in a replication system
table that indicates when a record has been added or modified. Is
there such a change or does Jet, in fact, go through table by table,
row by row?

David W. Fenton wrote:
rdemyan@xxxxxxxxxxx wrote in
news:1166803499.900559.90650@xxxxxxxxxxxxxxxxxxxxxxxxxxx:

What if I link to the MSysRepInfo table in both the remote replica
and the server replica. Then when the syncing process is invoked
(either upon closing of the app or manually by the user), the code
will retrieve the s_Generation field value (is that the right
field?) from both linked tables and compare them. If the same,
don't sync. The point of doing this is why open the tables and
attempt a sync when it's not needed. As I understand it,
corruption rarely if ever occurs from simply reading table values,
which is what this little function would do.

Do you really understand enough about Jet to make this
determination?

Any time you read data in an MDB, on termination of the connection,
Jet writes a flag indicating whether or not the connection
terminated successfully. When that flag is not set, Jet assumes the
database is corrupted (even if it's actually not). When that happens
in a replicated MDB, even when it's only the flag that's wrong and
there's no actual data corruption, 9 times out of 10, the result of
compacting the database is that it loses replicability.

This can happen even with the most minimal read operation.

Face it: you don't really know enough about Jet to be making this
determination. What you assume to be OK and true is simply not.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/

.



Relevant Pages

  • Re: Internet Sync with TSI
    ... Server replication as I don't have a good feeling about Jet (or ... Just looking at Vista, Jet replication seems to have been ... that replication support is going to die out. ...
    (microsoft.public.access.replication)
  • Re: Internet Sync with TSI
    ... Server replication as I don't have a good feeling about Jet (or ... Just looking at Vista, Jet replication seems to have been ... that replication support is going to die out. ...
    (microsoft.public.access.replication)
  • Re: Internet Sync with TSI
    ... Server replication as I don't have a good feeling about Jet (or ... Just looking at Vista, Jet replication seems to have been ... that replication support is going to die out. ...
    (microsoft.public.access.replication)
  • Re: Do Transactions guard against corruption?
    ... into one, that is called replication. ... But Jet replication does not use ... In replication or a multi-user database? ... they are not locked out as soon as the transaction also append ...
    (microsoft.public.access.modulesdaovba)
  • Re: Can I edit the MSys* tables directly?
    ... The only way to eliminate replication errors is to ... I'm pretty sure the TSISynchronizer uses defined Jet calls, ... and write directly to the MDB file. ... The Jet engine provides a way to eliminate recoreds in MSysErrors -- ...
    (microsoft.public.access.replication)