Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Replication / June 2005

Tip: Looking for answers? Try searching our database.

Synchronisation nightmare - corruption

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
osprite99@yahoo.co.uk - 21 Apr 2005 08:00 GMT
I have a client running Access 2000 on a desktop (win 98) acting as
the 'server' and a Sony Viaio notebook (win 2000).  They are
synchronising and
the data on the laptop is continually getting corrupted.  The symptoms
are either relatively minor but very irritating such as a) not finding
records based on the primary key, so all records being displayed or b)
queries showing duplicate records (doubled up) for no reason
whatsoever, when all the joins are on unique indexes or, more
seriously and worst of all, all new records entered since the last
synchronisation suddenly disappearing from both sets of data after
synchronisation.  When this happens, the records are usually to be
found in the 'conflicts' tables, although there can't be any
conflicts.  After synchronising, the user is told there are conflicts
to resolve but when opening the conflict resolution tool no table
conflicts are shown.

Is it possible that the Office installation could be at fault?  They
have a mixture of OEM versions, and not SP3.  Or could it be because
the laptop
replication library file references are via the network on the Win 98
machine, due to the fact that the library files are on different
locations on the two machines.  I think the only way to resolve that
is to upgrade the servier to W2000 or xp but client not keen as they
will probably need to upgrade the PC

It is driving both me and my client crazy - any suggestions very
welcome!

PS: already posted this in general access newsgroup
Cheval - 21 Apr 2005 21:00 GMT
I know how you feel, I've been through that tour of duty. It lasted 6 weeks;
re-create replica set, try this, try that, re-create replica set, ... I
still somewhat blame Office as it worked perfectly on the dodgy network in
Access 97 but hello started when they upgraded to Access 2003. Access
Replication 2003 must be a whole lot more picky and less network friendly.

The problem likely is the network between the two computers. The data is
getting messed up and corrupting the databases.

Your solution is likely two parts, 1) get the physical network checked and
fixed. 2) Until then change to indirect replication, it was made for this
sort of environment.

I have a client running Access 2000 on a desktop (win 98) acting as
the 'server' and a Sony Viaio notebook (win 2000).  They are
synchronising and
the data on the laptop is continually getting corrupted.  The symptoms
are either relatively minor but very irritating such as a) not finding
records based on the primary key, so all records being displayed or b)
queries showing duplicate records (doubled up) for no reason
whatsoever, when all the joins are on unique indexes or, more
seriously and worst of all, all new records entered since the last
synchronisation suddenly disappearing from both sets of data after
synchronisation.  When this happens, the records are usually to be
found in the 'conflicts' tables, although there can't be any
conflicts.  After synchronising, the user is told there are conflicts
to resolve but when opening the conflict resolution tool no table
conflicts are shown.

Is it possible that the Office installation could be at fault?  They
have a mixture of OEM versions, and not SP3.  Or could it be because
the laptop
replication library file references are via the network on the Win 98
machine, due to the fact that the library files are on different
locations on the two machines.  I think the only way to resolve that
is to upgrade the servier to W2000 or xp but client not keen as they
will probably need to upgrade the PC

It is driving both me and my client crazy - any suggestions very
welcome!

PS: already posted this in general access newsgroup
Ondine - 21 Apr 2005 21:38 GMT
Thanks very much for your advice.  When I checked the MSysConflicts
table, the reason for all the conflicts (and yes, the 'deleted' records
were on conflicts tables and the Conflict Viewer didn't pick them up)
was that the data was in a corrupted database.  I had to manually merge
the data changes, no fun with more than 800 records in a dozen tables!

I will try indirect replication - am I right in that I have to use
Replication Manager?
The network guy was there today and claims no problems with the
network, but found damaged files on the notebook's hard drive, so they
will probably replace that machine...fingers crossed!
David W. Fenton - 23 Apr 2005 21:59 GMT
> I will try indirect replication - am I right in that I have to use
> Replication Manager?

Well, you have to get Replication Manager to get the synchronizer.
Once you have it, you can use the TSI Synchronizer to control the
actual synchronization.

> The network guy was there today and claims no problems with the
> network, but found damaged files on the notebook's hard drive, so
> they will probably replace that machine...fingers crossed!

Are you saying that the replica in question was corrupted to the
point that it couldn't be opened?

Replicas should be compacted for regular maintenance purposes just
like any normal non-replicated MDB.

Also, make sure you're replicating only data, and not the front end.
If you're doing the latter, there's no amount of replacing PCs and
upgrading network equipment that will prevent the eventual complete
loss of your product.

But, again, the first thing you *must* do is to make sure that you
are running a stable version of Access 2K (SR1 or later) and a
stable version of Jet 4 (SP6 or 8).

And start compacting your replicas on a regular basis to prevent
this from happening in the future.

You also might want to read up on MichKa's "replica farms" so that
you never need to worry about losing a replica.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

David W. Fenton - 23 Apr 2005 21:55 GMT
> Your solution is likely two parts, 1) get the physical network
> checked and fixed. 2) Until then change to indirect replication,
> it was made for this sort of environment.

I would strongly disagree with this diagnosis.

1. first, make sure that both machines have Access 2K SR1 or later
(it may be called a service pack, I can't remember). Second, make
sure that you apply Jet 4 SP6 or later (the last I knew about was 8;
6 was stable, 7 was pulled quickly for bugs, and 8 added in some
additional security to avoid exposure to exploits that could execute
arbitrary code through the Jet expression service). Without that
scenario, you're guaranteed to have continued corruption issues, no
matter how stable your network.

2. I can't see how network issues could possibly cause corruption,
in any case, since if you're using the network to update the db on
the other computer, why in the world is replication needed in the
first place? Of course, you say you're using a Win98 workstation as
the peer-to-peer server, and a Win2K desktop connecting to it. I'm
pretty sure that's a problematic scenario. I don't remember the
details, but I think there were problems with Win2K connecting to
Win98 machines. And I always found the Win98 networking
infrastructure very hard to keep running well. So, you may need to
upgrade the peer-to-peer server to a real version of Windows (Win2K
would be just fine), or replace that workstation with a different
workstation running Win2K or WinXP (or NT 4, for that matter). On
the other hand, I had a client running with Win95 on the
peer-to-peer server and Win2K on their laptop, and it worked just
great. But, again, that just supports my experience that Win98 is an
outlier in terms of ease of networking.

3. I assume the basics, that you have a split front end/back end,
with forms, reports and so forth in the front end and only data
tables in the back end, and that you're only replicating the back
end. I also assume that you have some reason for replicating the
back end -- your explanation doesn't make clear to me why you'd have
any need for replication at all. Could it perhaps be that when the
laptop is in the office, it connects to the back end on the Win98
box, and when the laptop is on the road, it uses a replica on the
laptop's hard drive? That would justify replication and that's the
only replication scenario I use any longer with any of my clients
(all remote application sharing for my clients is now done via
hosting on Windows Terminal Server). If you have replicated the
front end project, that's likely to be your problem, as opening and
closing a form updates certain properties (especially if your users
are doing sorting and filtering, for instance, which are saved with
the form when it is closed), and these could automatically be
causing real conflicts in the data describing the structure of the
forms. To repeat: replication works only for pure Jet objects. That
means, data tables and queries only. All other objects are stored in
Jet, but are not Jet objects, but Access objects (forms, reports,
macros, modules), and should not be replicated.

4. more on conflicts: assuming that you are replicating only the
back end, let me address your assertions about the "unreal"
conflicts. Keep in mind that Jet replication uses not a
"human-sensical" definition of edits, but a mechanical count of
number of edits (i.e., generations of changes, where each generation
is an individual change). Here's a scenario that would produce a
conflict for the Jet replication system, but would not appear to a
human being to be a real conflict:

Replica A and B have the same replica priority (all replicas have
certain priorities for the resolution of conflicts; for instance, a
design master has a higher priority than any of its replicas; this
priority is used to resolve ties between changes in records). In
Replica A, you change the zip code of a record from 1135 to 01135.
Someone working in Replica B sees the same error in the same record
(probably from an import that didn't insert leading zeros into a zip
code column stored as numeric instead of as text), and changes 1135
to 01135. Now, both records have been changed, but both have been
changed to precisely the same value. But they both have incremented
generation numbers for the zip code field. Thus, the change needs to
be propogated. Assuming the replicas have the same priority (which
is not always a correct priority), this has to be a conflict for the
Jet replication system, even if it's *not* a conflict for a human
being (since the records have the same data). The key is: the
synchronization process ignores the actual data values and uses
nothing but generation numbers and replica priority to resolve
conflicts.

Now, another cause of "phantom" conflicts could be an application
that is unnecessarily dirtying and saving records. Say you've got a
form where, for whatever reason, your programmer has decided that
it's necessary for some reason to dirty the form. The easiest way to
do this is to set a field equal to itself:

 Me!MyField = Me!MyField

The record then gets saved afterwards, one way or the other.

Now, this isn't a real data change, but for replication, it
increments the generation number for that field. If it's part of the
application, it's going to happen for the records in every copy of
the application, so it's absolutely guaranteed to produce conflicts.

Another source of annoying conflicts is if you replicate temp
tables. These will constantly have data recycled, so you really
don't want the changes in them propagated to the other members of
the replica set. I recently converted an old app that had a flag
field in it that was used for marking records according to certain
kinds of complex criteria not easily implemented with SQL. When the
app was replicated, I moved the flag field to a separate 1:1 table
that was *not* replicated so that changes to it wouldn't propagate
to the replicas (as it wasn't meaningful data except for a certain
search context, and had no value in persistence).

5. invisible conflicts: this could be caused by a number of
problems, but I think the most likely is perhaps empty or erroneous
conflict tables. When there's a conflict, a conflict table is
created with the name BaseTable_Conflict, and if somehow the
conflicts in that table have somehow been resolved, but didn't get
deleted from the conflict table, you can get continued reports of
conflicts. So, you need to check these conflict tables to see if the
conflicts reported still exist (and you have to check all the
replicas in the replica set to be sure). If they no longer exist,
then you can delete the conflict table, and that should take care of
the problem.

In short, your report of corruption tends to suggest to me that your
problem is that you're using one of the horrendously buggy early
versions of Jet 4, and/or the initial release of Access 2K. Bring
those up to spec (as outlined at the top of this long message) and
see if that gets rid of the problem.

Last of all, for issues of corruption, you can't go wrong by
starting here:

 http://www.granite.ab.ca/access/corruptmdbs.htm

You'll find that this page walks you through all the causes for
corruption in the various versions of Access with pointers to all
the documentation and resources you need to troubleshoot the
problem.

But I'm not entirely certain you've identified corruption in the
conventional sense (though I suspect a corrupted PK index -- you
have compacted your replicas, right?). You may have a corrupted data
set, though, in terms of replication synchronization, where the
replicas are not identical after a synchronization.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

Cheval - 26 Apr 2005 00:12 GMT
1) I was making the assumption that this was already done but I know what
happens when you assume... good point.
2) Just because you don't understand, doesn't mean it can't happen. Ok think
about the basics taking MS Access out of the picture. You try to save data
to a file and the connection drops and reconnects, what do you think is
going to happen the file? Corruption and that's just one example.
3) You are totally right. In my case I only replicate tables.
4) ok, but what's your point in regards to what I wrote?
5) again I think you may be wanting to reply to the other message.

"Cheval" <NoSpam.Ask@ForEmail.com> wrote in
news:LDT9e.19148$5F3.2157@news-server.bigpond.net.au:

> Your solution is likely two parts, 1) get the physical network
> checked and fixed. 2) Until then change to indirect replication,
> it was made for this sort of environment.

I would strongly disagree with this diagnosis.

1. first, make sure that both machines have Access 2K SR1 or later
(it may be called a service pack, I can't remember). Second, make
sure that you apply Jet 4 SP6 or later (the last I knew about was 8;
6 was stable, 7 was pulled quickly for bugs, and 8 added in some
additional security to avoid exposure to exploits that could execute
arbitrary code through the Jet expression service). Without that
scenario, you're guaranteed to have continued corruption issues, no
matter how stable your network.

2. I can't see how network issues could possibly cause corruption,
in any case, since if you're using the network to update the db on
the other computer, why in the world is replication needed in the
first place? Of course, you say you're using a Win98 workstation as
the peer-to-peer server, and a Win2K desktop connecting to it. I'm
pretty sure that's a problematic scenario. I don't remember the
details, but I think there were problems with Win2K connecting to
Win98 machines. And I always found the Win98 networking
infrastructure very hard to keep running well. So, you may need to
upgrade the peer-to-peer server to a real version of Windows (Win2K
would be just fine), or replace that workstation with a different
workstation running Win2K or WinXP (or NT 4, for that matter). On
the other hand, I had a client running with Win95 on the
peer-to-peer server and Win2K on their laptop, and it worked just
great. But, again, that just supports my experience that Win98 is an
outlier in terms of ease of networking.

3. I assume the basics, that you have a split front end/back end,
with forms, reports and so forth in the front end and only data
tables in the back end, and that you're only replicating the back
end. I also assume that you have some reason for replicating the
back end -- your explanation doesn't make clear to me why you'd have
any need for replication at all. Could it perhaps be that when the
laptop is in the office, it connects to the back end on the Win98
box, and when the laptop is on the road, it uses a replica on the
laptop's hard drive? That would justify replication and that's the
only replication scenario I use any longer with any of my clients
(all remote application sharing for my clients is now done via
hosting on Windows Terminal Server). If you have replicated the
front end project, that's likely to be your problem, as opening and
closing a form updates certain properties (especially if your users
are doing sorting and filtering, for instance, which are saved with
the form when it is closed), and these could automatically be
causing real conflicts in the data describing the structure of the
forms. To repeat: replication works only for pure Jet objects. That
means, data tables and queries only. All other objects are stored in
Jet, but are not Jet objects, but Access objects (forms, reports,
macros, modules), and should not be replicated.

4. more on conflicts: assuming that you are replicating only the
back end, let me address your assertions about the "unreal"
conflicts. Keep in mind that Jet replication uses not a
"human-sensical" definition of edits, but a mechanical count of
number of edits (i.e., generations of changes, where each generation
is an individual change). Here's a scenario that would produce a
conflict for the Jet replication system, but would not appear to a
human being to be a real conflict:

Replica A and B have the same replica priority (all replicas have
certain priorities for the resolution of conflicts; for instance, a
design master has a higher priority than any of its replicas; this
priority is used to resolve ties between changes in records). In
Replica A, you change the zip code of a record from 1135 to 01135.
Someone working in Replica B sees the same error in the same record
(probably from an import that didn't insert leading zeros into a zip
code column stored as numeric instead of as text), and changes 1135
to 01135. Now, both records have been changed, but both have been
changed to precisely the same value. But they both have incremented
generation numbers for the zip code field. Thus, the change needs to
be propogated. Assuming the replicas have the same priority (which
is not always a correct priority), this has to be a conflict for the
Jet replication system, even if it's *not* a conflict for a human
being (since the records have the same data). The key is: the
synchronization process ignores the actual data values and uses
nothing but generation numbers and replica priority to resolve
conflicts.

Now, another cause of "phantom" conflicts could be an application
that is unnecessarily dirtying and saving records. Say you've got a
form where, for whatever reason, your programmer has decided that
it's necessary for some reason to dirty the form. The easiest way to
do this is to set a field equal to itself:

 Me!MyField = Me!MyField

The record then gets saved afterwards, one way or the other.

Now, this isn't a real data change, but for replication, it
increments the generation number for that field. If it's part of the
application, it's going to happen for the records in every copy of
the application, so it's absolutely guaranteed to produce conflicts.

Another source of annoying conflicts is if you replicate temp
tables. These will constantly have data recycled, so you really
don't want the changes in them propagated to the other members of
the replica set. I recently converted an old app that had a flag
field in it that was used for marking records according to certain
kinds of complex criteria not easily implemented with SQL. When the
app was replicated, I moved the flag field to a separate 1:1 table
that was *not* replicated so that changes to it wouldn't propagate
to the replicas (as it wasn't meaningful data except for a certain
search context, and had no value in persistence).

5. invisible conflicts: this could be caused by a number of
problems, but I think the most likely is perhaps empty or erroneous
conflict tables. When there's a conflict, a conflict table is
created with the name BaseTable_Conflict, and if somehow the
conflicts in that table have somehow been resolved, but didn't get
deleted from the conflict table, you can get continued reports of
conflicts. So, you need to check these conflict tables to see if the
conflicts reported still exist (and you have to check all the
replicas in the replica set to be sure). If they no longer exist,
then you can delete the conflict table, and that should take care of
the problem.

In short, your report of corruption tends to suggest to me that your
problem is that you're using one of the horrendously buggy early
versions of Jet 4, and/or the initial release of Access 2K. Bring
those up to spec (as outlined at the top of this long message) and
see if that gets rid of the problem.

Last of all, for issues of corruption, you can't go wrong by
starting here:

 http://www.granite.ab.ca/access/corruptmdbs.htm

You'll find that this page walks you through all the causes for
corruption in the various versions of Access with pointers to all
the documentation and resources you need to troubleshoot the
problem.

But I'm not entirely certain you've identified corruption in the
conventional sense (though I suspect a corrupted PK index -- you
have compacted your replicas, right?). You may have a corrupted data
set, though, in terms of replication synchronization, where the
replicas are not identical after a synchronization.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

Ondine - 26 Apr 2005 12:34 GMT
Thanks to you all for your interest and help in this.

In response:

1.  Upgrading to the latest Jet service pack I realise is essential and
also Office 2000 sp3.

2.  The reason we are using replication is because the main user of the
system is constantly travelling around the globe and wants access to
the data.  He probably enters and edits more data than those back in
the office, and I have thought of ditching the replication so that he
has the main data set and they have a read-only copy whilst he is away.
They are not too keen on that for now however.  I have never been
particularly happy with using the Win98 machine as the server, although
I had a similar scenario at another client replicating too with a Win95
desktop and Win2000 laptop with no problems, as you too experienced.

3.  The front and back end are split, the only objects being replicated
are the tables, one unbound form (which handles the process) AND one
module with the JRO code - perhaps that could be a problem?  It has
caused difficulties because of the library files being in different
locations on these 2 pc's.  Therefore, when synchronising the laptop
looks up the library files via the network on the win98 machine - maybe
that's not too clever?

4.  As far as the conflicts are concerned, they were in all cases
records which had been added or updated on the laptop when away from
the network.  I.e. all the new records he added appeared in the
conflict table, the reason in the MSysConflicts table given for all the
conflicts being to the effect that the 'record was found in a corrupted
database and could not be sychronised'.  The thing is that although the
added/updated records appeared in the conflicts tables, they could not
be accessed by the user via the Conflict Viewer which stated that there
were no conflict tables.  Almost all the 'conflict' records he had
edited had not been updated by the people in the office (the database
has an audit trail for all updates), it was only the generation number
which was different (and the changed data obviously).  There are no
temp tables in the back end, they are all in the front end.

5.  The conflict tables did not exist before this incident: I had
re-created the design master just before his trip because there was
another horrendous occurence: a networked WinXp machine was being used
to add items to a table (using a bar-code scanner) and I strongly
suspect there was a network interruption because all the entries in the
list box (which refreshed after each addition) apparantly showed
'#Error' and the data was then not available.  When they attemtped to
repair the 'server' data, it proved too much of a task for Access and
it reverted to a 6-month old '.bak' file which had a fraction of their
data in it.  At that point I went in and found that their data file had
been renamed 'Damaged.mdb' by Access.  I removed the damaged fields and
had to recreate the design master and *manually* merge changed records
which were still on the laptop - something I had to do last week as
well, not much fun.  So I do think they have network issues as well.
Their network person found a damaged and out of date version of Norton
Utilities on that machine, which he thought may have accounted for the
incident; I am not so sure.

I do stress to my client that they MUST compact/repair the replica both
before and after synchronising.  They have a desktop shortcut to do it.
Whether they actually do it is another story.

What we are going to do is to set up a new machine running WinXp as the
server, make sure all machines have the latest Office 2000 service pack
AND latest Jet service pack which is 8.0 plus another pack relating to
replication (file version 4.72.2811.0).  I will also set up Indirect
Replication.

Ondine
David W. Fenton - 27 Apr 2005 01:47 GMT
> Thanks to you all for your interest and help in this.
>
> In response:
>
> 1.  Upgrading to the latest Jet service pack I realise is
> essential and also Office 2000 sp3.

It doesn't have to be SP3. There are important reasons to avoid SP3,
because that was the update where Microsoft introduced what is
called the Draconian Outlook security patch, which neutered your
ability to open most attachments (instead of actually addressing the
whole issue of attachment security in an adult manner). Many shops
that are still on Office 2K don't want that version of Outlook, and
to can't get SP3 of Access without getting the neutered version of
Outlook. That's why I keep SR1 handy for clients who use Outlook 2K
and don't want to give up their attachments.

> 2.  The reason we are using replication is because the main user
> of the system is constantly travelling around the globe and wants
[quoted text clipped - 7 lines]
> too with a Win95 desktop and Win2000 laptop with no problems, as
> you too experienced.

In my experience, Win98 is a different animal, less reliably as P2P
server than the much older Win95 (any version).

I really hated Win98 and moved most of my client base from Win95 to
NT 4, with great success. It also meant that they were completely
ready for Win2K (no shocking experience dealing with real security
for the first time).

> 3.  The front and back end are split, the only objects being
> replicated are the tables, one unbound form (which handles the
> process) AND one module with the JRO code - perhaps that could be
> a problem? . . .

I would never use JRO. Instead, I'd use native DAO. I don't
understand why people muck around with ADO when they are working
with Jet data from an MDB. In that scenario, except for the tiny
handful of things ADO can do that DAO can't, there's no reason to
use ADO at all.

(of course, the rant above is based on my perhaps foggy understand
of exactly what JRO is; I assume that it's an extra library for Jet
Replication that is provided as an adjunct to ADO, since ADO can't
possibly know anything about Jet replication, any more than ODBC
would)

> . . . It has caused difficulties because of the library
> files being in different locations on these 2 pc's.  Therefore,
> when synchronising the laptop looks up the library files via the
> network on the win98 machine - maybe that's not too clever?

I don't know why you're using JRO. If you use DAO, you won't have
any issues, since Access does fine adjusting to different DAO
locations.

> 4.  As far as the conflicts are concerned, they were in all cases
> records which had been added or updated on the laptop when away
[quoted text clipped - 10 lines]
> was different (and the changed data obviously).  There are no temp
> tables in the back end, they are all in the front end.

Unlike Jet 3.x replication, Jet 4 does not distinguish between a
data error and a data conflict. All data errors are treated just
like conflicts. This is what you're seeing, a data error showing up
as a conflict.

It seems quite obvious to me that you *must* resolve the corruption
issue before you can do anything else. You need to identify which
replica is corrupt and compact it. If you cannot get rid of the
corruption and you can't create a replica of the corrupted MDB, then
that MDB's data is lost to replication synchronization and the only
way to recover it is manually, using queries to copy data and update
records between the bad replica and the good one.

Again, you should go to http://www.trigeminal.com and read up on
Replica Farms. Properly implemented, a replica farm should mean that
you never have to worry about losing a replica (and its data) ever
again.

> 5.  The conflict tables did not exist before this incident: . . .

Conflict tables do not exist until there are conflicts. They persist
until all the conflicts in them are resolved, or until you manually
delete them (which is not a recommended solution).

> . . . I had
> re-created the design master just before his trip because there
[quoted text clipped - 8 lines]
> went in and found that their data file had been renamed
> 'Damaged.mdb' by Access. . . .

I don't know that Access 2000 does any such thing. It sounds like
the application involved did this.

> . . . I removed the damaged fields and had to
> recreate the design master and *manually* merge changed records
[quoted text clipped - 3 lines]
> of Norton Utilities on that machine, which he thought may have
> accounted for the incident; I am not so sure.

My experience with Norton is that, in general, it is much worse than
useless -- it tends to cause far more problems than it fixes.

It sounds to me like you have a very bad network setup, with
unreliable equipment. Replication is never going to be reliable if
your basic network is not reliable.

> I do stress to my client that they MUST compact/repair the replica
> both before and after synchronising.  They have a desktop shortcut
> to do it.
>  Whether they actually do it is another story.

Can't you do it in code before you start the synchronization,
including making a backup beforehand? If you were using DAO it would
be quite easy.

> What we are going to do is to set up a new machine running WinXp
> as the server, make sure all machines have the latest Office 2000
> service pack . . .

They don't need the latest, only SR1 or higher.

> . . . AND latest Jet service pack which is 8.0 plus another
> pack relating to replication (file version 4.72.2811.0).  I will
> also set up Indirect Replication.

Make sure you don't have duplicates of the replication files on your
hard drive. I forget the actual file name, but it very often gets
duplicated and version mismatches on that file can cause replication
problems. MichKa may have something on his website about it.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

Ondine - 27 Apr 2005 08:36 GMT
> > Thanks to you all for your interest and help in this.
> >
[quoted text clipped - 12 lines]
> Outlook. That's why I keep SR1 handy for clients who use Outlook 2K
> and don't want to give up their attachments.

I take your point, although they don't use Outlook as the owner of this
business refuses to allow internet connections on pc's linked to his data,
which just makes my life even harder with this crew

> > 2.  The reason we are using replication is because the main user
> > of the system is constantly travelling around the globe and wants
[quoted text clipped - 41 lines]
> any issues, since Access does fine adjusting to different DAO
> locations.

I generally don't use ADO either, I'm wedded to DAO.  As far as I can
remember when I set this up, there wasn't a DAO route to automating the sync
process (I probably need to check this)

> > 4.  As far as the conflicts are concerned, they were in all cases
> > records which had been added or updated on the laptop when away
[quoted text clipped - 15 lines]
> like conflicts. This is what you're seeing, a data error showing up
> as a conflict.

It's funny that the Conflict Viewer didn't pick them up though.

> It seems quite obvious to me that you *must* resolve the corruption
> issue before you can do anything else. You need to identify which
[quoted text clipped - 3 lines]
> way to recover it is manually, using queries to copy data and update
> records between the bad replica and the good one.

That's exactly what I did, for 839 records.  I have told them to work only
on the network data and not under any circumstances to synchronise until we
have upgraded their hardware/software.  Interestingly, the corrupted mdb on
the laptop did open and function after the sync, as it did beforehand when it
was probably already corrupted in some way.

> Again, you should go to http://www.trigeminal.com and read up on
> Replica Farms. Properly implemented, a replica farm should mean that
> you never have to worry about losing a replica (and its data) ever
> again.

I have to inform myself about these farms.

> > 5.  The conflict tables did not exist before this incident: . . .
>
[quoted text clipped - 17 lines]
> I don't know that Access 2000 does any such thing. It sounds like
> the application involved did this.

No, it's not something I invented.  I was very surprised to find it as I
haven't come across this before.  It was either created after Access failed
to repair the file, or possibly,  but less likely, when it because corrupted
in the first place.

> > . . . I removed the damaged fields and had to
> > recreate the design master and *manually* merge changed records
[quoted text clipped - 10 lines]
> unreliable equipment. Replication is never going to be reliable if
> your basic network is not reliable.

This is definitely the case.  

> > I do stress to my client that they MUST compact/repair the replica
> > both before and after synchronising.  They have a desktop shortcut
[quoted text clipped - 4 lines]
> including making a backup beforehand? If you were using DAO it would
> be quite easy.

I'll look into that too.

> > What we are going to do is to set up a new machine running WinXp
> > as the server, make sure all machines have the latest Office 2000
[quoted text clipped - 10 lines]
> duplicated and version mismatches on that file can cause replication
> problems. MichKa may have something on his website about it.

I'd better look out for that.

Thanks again for your help.

Ondine.
David W. Fenton - 30 Apr 2005 03:53 GMT
> I generally don't use ADO either, I'm wedded to DAO.  As far as I
> can remember when I set this up, there wasn't a DAO route to
> automating the sync process (I probably need to check this)

There certainly are such commands in DAO, but only for direct
replication.

If you want to do indirect replication initiated in code, then you
need the TSI Synchronizer, from http://www.trigeminal.com.

I wouldn't muck around with JRO for love or money.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

David W. Fenton - 30 Apr 2005 03:55 GMT
> Thanks again for your help.

I'm just passing on help that's been given to me over the years,
back when I was struggling with the same issues.

If you haven't figure out, Michael Kaplan's website,
http://www.trigeminal.com, is the essential website for Jet
replication, and the Google archives for this newsgroup cover just
about anything that has ever been attempted with Jet replication,
and every problem that has resulted.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

Vitaljus J. Karalius - 28 Jun 2005 19:09 GMT
> > Thanks again for your help.
>
[quoted text clipped - 10 lines]
> David W. Fenton                        http://www.bway.net/~dfenton
> dfenton at bway dot net                http://www.bway.net/~dfassoc

...and over the years you have posted some of the best info on replication -
thanks.
David W. Fenton - 28 Jun 2005 23:14 GMT
>> > Thanks again for your help.
>>
[quoted text clipped - 9 lines]
> ...and over the years you have posted some of the best info on
> replication - thanks.

I'm a piker in comparison to MichKa.

I've been doing replication on a regular basis again, and have also
noticed lots of replication questions in CDMA, so I've been trying
to make an effort to be sure that over there and in this newsgroup
questions about replication get answered now that MichKa has moved
on to other topics.

I am not the expert he is, but so far, not too much has come up that
I haven't already encountered.

I'm surprised at the number of people encountering replication for
the first time at this late date. My clients needed it way back in
1997, shortly after it was first introduced, and that's when I got
my feet wet.

And I made all the mistakes that everyone else makes, with the
exception of replicating the front end -- I'd never have thought of
that as I have always known to split front end/back end. And I
learned *that* from reading the Access 2 help file's articles on
running multi-user applications.

I guess I was lucky, since a lot of people miss that.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

David W. Fenton - 27 Apr 2005 01:28 GMT
> 2) Just because you don't understand, doesn't mean it can't
> happen. Ok think about the basics taking MS Access out of the
> picture. You try to save data to a file and the connection drops
> and reconnects, what do you think is going to happen the file?
> Corruption and that's just one example.

But it's going to be the same kind of corruption you get with a
non-replicated MDB, not some special kind specific to replicated
DBs. The only exception for that is that replicas will often lose
replicability as the first sign of something flaky on a network,
while otherwise remaining completely uncorrupted (and not even
flagged as corrupt by Access).

If you can still synchronize, then it's not traditional corruption
of the kind caused by dropped connections.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

Cheval - 27 Apr 2005 09:00 GMT
Technically yes, but if it cannot replicate fully then I would also call it
a corruption.

In our case we couldn't replicate, due to a replication error. That I would
also call a corruption.

"Cheval" <NoSpam.Ask@ForEmail.com> wrote in
news:SPebe.24775$5F3.10446@news-server.bigpond.net.au:

> 2) Just because you don't understand, doesn't mean it can't
> happen. Ok think about the basics taking MS Access out of the
> picture. You try to save data to a file and the connection drops
> and reconnects, what do you think is going to happen the file?
> Corruption and that's just one example.

But it's going to be the same kind of corruption you get with a
non-replicated MDB, not some special kind specific to replicated
DBs. The only exception for that is that replicas will often lose
replicability as the first sign of something flaky on a network,
while otherwise remaining completely uncorrupted (and not even
flagged as corrupt by Access).

If you can still synchronize, then it's not traditional corruption
of the kind caused by dropped connections.

Signature

David W. Fenton                        http://www.bway.net/~dfenton
dfenton at bway dot net                http://www.bway.net/~dfassoc

 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.