473,326 Members | 2,048 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,326 software developers and data experts.

Replication: very strange problem

Hi

I have a client running an Access 2000 database on a small network
with 3 pc's. Two of the laptop pcs have a data replica, which they
use when not connected to the network, the 'server' being the 3rd
machine.

The other day they reported that 'suddenly' a whole load of data that
they had entered (on to the 'server' main data) that day had
'disappeared'. Not only had the new data gone, but updates performed
when the new data was entered seemed to have rolled back (e.g. items
on new invoices were back in stock again).

The information they gave me was somewhat vague, but they did say that
when preparing one of the invoices, they suddenly saw 'Error' in all
the fields and crashed out. When they went back in again, the day's
work had disappeared. I went over there and couldn't see any evidence
of this work on any machine, including the 2 replica databases and it
seemed inexplicable.

However, I now suspect that what must have happened is that one of
them tried to synchronise their laptop whilst the others were entering
data - obviously not a good idea. Could it be that somehow the main
data (which is the design master) got corrupted in such a way that it
was OVERWRITTEN with the earlier replica, and therefore the newer
records were lost? It seems that the data has returned to the state
it was in when this person last synchronised.
Could this be possible? And if so, how could it happen and how can it
be avoided? Help!

Many thanks.

Ondine.
Nov 13 '05 #1
8 1667
On 29 Sep 2004 07:24:48 -0700, os*******@yahoo.co.uk (Ondine) wrote:

Rather than speculating what happened, restore a backup.
-Tom.

Hi

I have a client running an Access 2000 database on a small network
with 3 pc's. Two of the laptop pcs have a data replica, which they
use when not connected to the network, the 'server' being the 3rd
machine.

The other day they reported that 'suddenly' a whole load of data that
they had entered (on to the 'server' main data) that day had
'disappeared'. Not only had the new data gone, but updates performed
when the new data was entered seemed to have rolled back (e.g. items
on new invoices were back in stock again).

The information they gave me was somewhat vague, but they did say that
when preparing one of the invoices, they suddenly saw 'Error' in all
the fields and crashed out. When they went back in again, the day's
work had disappeared. I went over there and couldn't see any evidence
of this work on any machine, including the 2 replica databases and it
seemed inexplicable.

However, I now suspect that what must have happened is that one of
them tried to synchronise their laptop whilst the others were entering
data - obviously not a good idea. Could it be that somehow the main
data (which is the design master) got corrupted in such a way that it
was OVERWRITTEN with the earlier replica, and therefore the newer
records were lost? It seems that the data has returned to the state
it was in when this person last synchronised.
Could this be possible? And if so, how could it happen and how can it
be avoided? Help!

Many thanks.

Ondine.


Nov 13 '05 #2
Tom

The reason I am speculating is because I don't need this happening
again. They are a disorganised and difficult client, and in my
experience it helps in terms of one's credibility to be able to
explain what might have gone wrong and take steps to avoid it
recurring.

Ondine.

Tom van Stiphout <no*************@cox.net> wrote in message news:<6j********************************@4ax.com>. ..
On 29 Sep 2004 07:24:48 -0700, os*******@yahoo.co.uk (Ondine) wrote:

Rather than speculating what happened, restore a backup.
-Tom.

Hi

I have a client running an Access 2000 database on a small network
with 3 pc's. Two of the laptop pcs have a data replica, which they
use when not connected to the network, the 'server' being the 3rd
machine.

The other day they reported that 'suddenly' a whole load of data that
they had entered (on to the 'server' main data) that day had
'disappeared'. Not only had the new data gone, but updates performed
when the new data was entered seemed to have rolled back (e.g. items
on new invoices were back in stock again).

The information they gave me was somewhat vague, but they did say that
when preparing one of the invoices, they suddenly saw 'Error' in all
the fields and crashed out. When they went back in again, the day's
work had disappeared. I went over there and couldn't see any evidence
of this work on any machine, including the 2 replica databases and it
seemed inexplicable.

However, I now suspect that what must have happened is that one of
them tried to synchronise their laptop whilst the others were entering
data - obviously not a good idea. Could it be that somehow the main
data (which is the design master) got corrupted in such a way that it
was OVERWRITTEN with the earlier replica, and therefore the newer
records were lost? It seems that the data has returned to the state
it was in when this person last synchronised.
Could this be possible? And if so, how could it happen and how can it
be avoided? Help!

Many thanks.

Ondine.

Nov 13 '05 #3
Tom van Stiphout <no*************@cox.net> wrote in
news:6j********************************@4ax.com:
Rather than speculating what happened, restore a backup.


Restoring backups is problematic with replication. Consider this
scenario:

1. you have three replicas. You synch the three so they are all
identical.

2. data is edited in replica1 and synched with the other two
replicas.

3. data is also edited in replica2 and replica3, but replica1 is
corrupted and lost.

4. you restore a backup of replica1 that predates the
synchronization with the other two replicas.

Consider the state of affairs:

Replica2 and replica3 already know about data from replica1 that the
restored version of replica1 doesn't even have in it.

What should synchronization do when a replica reverts to a
generation earlier than is recorded in the other replicas in the
replica set

I can't predict what will happen, and because of that, you should be
very wary of restoring a backup of a replicated database.

This is why MichKa recommends the use of what he calls "Replica
Farms." The concept is that around each replica that is in use, you
have a farm of expendable replicas that are kept in synch on a
regular schedule. If your edited replica gets corrupted, you delete
it, synch with the other replicas in the replica farm (so they know
that replica doesn't exist any more and can delete it from their
replication tables), then create a replacement replica. The only
data that will be lost is the data entered between the last synch
and the corruption.

Note to Access developers: if you haven't done replication, you
probably shouldn't give advice about it.

There are any number of non-obvious issues and possible gotchas that
might seem perfectly OK from your experience in a non-replicated
scenario that can cause corruption and major data loss when the same
database/application is replicated.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #4
os*******@yahoo.co.uk (Ondine) wrote in
news:93**************************@posting.google.c om:
I have a client running an Access 2000 database on a small network
with 3 pc's. Two of the laptop pcs have a data replica, which
they use when not connected to the network, the 'server' being the
3rd machine.

The other day they reported that 'suddenly' a whole load of data
that they had entered (on to the 'server' main data) that day had
'disappeared'. Not only had the new data gone, but updates
performed when the new data was entered seemed to have rolled back
(e.g. items on new invoices were back in stock again).
Data can disappear from a replica for three reasons that I can think
of:

1. a user deletes it in one replica. When that replica is synched,
the deletions are properly propagated to the other replicas in the
replica set.

2. a primary key index is corrupted and records then disappear from
recordsets that utilize that index (either selects or sorts; the
sorts don't have to be on the PK, either, since other indexes can
use the PK index for getting to the data pages involved).

3. something corrupts a database and records are lost because of the
corruption.
The information they gave me was somewhat vague, . . .
I've been doing technical support all week, and one of the things
that is being driven home to me (I knew it from experience already)
is that you don't really know what happened until you talk to the
user and interview them at length. I've had many messages like "user
xyz can't retrieve email" that turned out to really be "user xyz is
not on a distribution list for a certain class of email messages
that she thinks she has a right to see."
. . . but they did say
that when preparing one of the invoices, they suddenly saw 'Error'
in all the fields and crashed out. When they went back in again,
the day's work had disappeared. I went over there and couldn't
see any evidence of this work on any machine, including the 2
replica databases and it seemed inexplicable.
That could happen because another user deleted the records while
they were viewing. It could perhaps happen because of a corrupted
index.

It could possibly happen if a synch took place while the user was
editing, but I think this is unlikely. If the records were deleted,
the user wouldn't see #ERROR but #DELETED.
However, I now suspect that what must have happened is that one of
them tried to synchronise their laptop whilst the others were
entering data - obviously not a good idea. . . .
It's a perfectly good idea. Indeed, it's recommended.

The synch is just another user editing the data, no different than a
human user. It's just that the edits happen all in a batch and in
larger numbers than a human being could do in the same amount of
time.

I've never seen corruption from that scenario *except* in the case
of memo fields -- memo fields should all be unbound in replicated
apps (and many would argue that they should be unbound in *all*
apps).
. . . Could it be that
somehow the main data (which is the design master) got corrupted
in such a way that it was OVERWRITTEN with the earlier replica,
Corruption doesn't propagate through replication, as it does not
conform to the necessary schema for recording and propagating the
replication changes.
and therefore the newer records were lost? It seems that the data
has returned to the state it was in when this person last
synchronised. Could this be possible? And if so, how could it
happen and how can it be avoided? Help!


My bet is that it's either corruption or someone trying to cover up
a huge mistake.

My vote would be for the latter.

You might be able to recover some of the data if you restored from a
backup to a new location (not over top of the corrupted file) and
then synched the other replicas with that restored backup (it would
be a new replica in the replica set so it won't cause the problems I
described in my reply to Tom).

But I strongly doubt that's the issue.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #5
On Thu, 30 Sep 2004 20:42:10 -0500, "David W. Fenton"
<dX********@bway.net.invalid> wrote:

I do agree with the idea of replica farms, but in lieu of that, I
would restore the master, and recreate the replicas.

I'm on somewhat thin ice here: in my mind replication is too difficult
to manage by all but the most sophisticated clients, so I rarely have
an opportunity to use it :-)

-Tom.

Tom van Stiphout <no*************@cox.net> wrote in
news:6j********************************@4ax.com :
Rather than speculating what happened, restore a backup.


Restoring backups is problematic with replication. Consider this
scenario:

1. you have three replicas. You synch the three so they are all
identical.

2. data is edited in replica1 and synched with the other two
replicas.

3. data is also edited in replica2 and replica3, but replica1 is
corrupted and lost.

4. you restore a backup of replica1 that predates the
synchronization with the other two replicas.

Consider the state of affairs:

Replica2 and replica3 already know about data from replica1 that the
restored version of replica1 doesn't even have in it.

What should synchronization do when a replica reverts to a
generation earlier than is recorded in the other replicas in the
replica set

I can't predict what will happen, and because of that, you should be
very wary of restoring a backup of a replicated database.

This is why MichKa recommends the use of what he calls "Replica
Farms." The concept is that around each replica that is in use, you
have a farm of expendable replicas that are kept in synch on a
regular schedule. If your edited replica gets corrupted, you delete
it, synch with the other replicas in the replica farm (so they know
that replica doesn't exist any more and can delete it from their
replication tables), then create a replacement replica. The only
data that will be lost is the data entered between the last synch
and the corruption.

Note to Access developers: if you haven't done replication, you
probably shouldn't give advice about it.

There are any number of non-obvious issues and possible gotchas that
might seem perfectly OK from your experience in a non-replicated
scenario that can cause corruption and major data loss when the same
database/application is replicated.


Nov 13 '05 #6
David

Thanks very much for your constructive advice. I doubt that we will
ever get to the bottom of what actually happened over there. They
apparantly lost data from 3 different tables (and these records were
not linked at all) so the corrupted index looks unlikely. Also,
related records in other tables lost changes made to them, which is
why I speculated that the data seemed to revert to an earlier version.

Anyway, the replica 'farm' idea sounds interesting and I would be
grateful for any pointers as to where I can find out more about this
concept. I was wondering however if it would be recommended in a
situation where:
a) The 'server' is a basic pc running Windows 98
b) The person working on the 'server' may not have Access 2000
running all the time (or at all)
c) There is no reasonably computer-literate person on-site and I try
to keep my visits to a minimum!

Thanks again.

Ondine.

"David W. Fenton" <dX********@bway.net.invalid> wrote in message news:<Xn**********************************@216.196 .97.142>...
os*******@yahoo.co.uk (Ondine) wrote in
news:93**************************@posting.google.c om:
I have a client running an Access 2000 database on a small network
with 3 pc's. Two of the laptop pcs have a data replica, which
they use when not connected to the network, the 'server' being the
3rd machine.

The other day they reported that 'suddenly' a whole load of data
that they had entered (on to the 'server' main data) that day had
'disappeared'. Not only had the new data gone, but updates
performed when the new data was entered seemed to have rolled back
(e.g. items on new invoices were back in stock again).


Data can disappear from a replica for three reasons that I can think
of:

1. a user deletes it in one replica. When that replica is synched,
the deletions are properly propagated to the other replicas in the
replica set.

2. a primary key index is corrupted and records then disappear from
recordsets that utilize that index (either selects or sorts; the
sorts don't have to be on the PK, either, since other indexes can
use the PK index for getting to the data pages involved).

3. something corrupts a database and records are lost because of the
corruption.
The information they gave me was somewhat vague, . . .


I've been doing technical support all week, and one of the things
that is being driven home to me (I knew it from experience already)
is that you don't really know what happened until you talk to the
user and interview them at length. I've had many messages like "user
xyz can't retrieve email" that turned out to really be "user xyz is
not on a distribution list for a certain class of email messages
that she thinks she has a right to see."
. . . but they did say
that when preparing one of the invoices, they suddenly saw 'Error'
in all the fields and crashed out. When they went back in again,
the day's work had disappeared. I went over there and couldn't
see any evidence of this work on any machine, including the 2
replica databases and it seemed inexplicable.


That could happen because another user deleted the records while
they were viewing. It could perhaps happen because of a corrupted
index.

It could possibly happen if a synch took place while the user was
editing, but I think this is unlikely. If the records were deleted,
the user wouldn't see #ERROR but #DELETED.
However, I now suspect that what must have happened is that one of
them tried to synchronise their laptop whilst the others were
entering data - obviously not a good idea. . . .


It's a perfectly good idea. Indeed, it's recommended.

The synch is just another user editing the data, no different than a
human user. It's just that the edits happen all in a batch and in
larger numbers than a human being could do in the same amount of
time.

I've never seen corruption from that scenario *except* in the case
of memo fields -- memo fields should all be unbound in replicated
apps (and many would argue that they should be unbound in *all*
apps).
. . . Could it be that
somehow the main data (which is the design master) got corrupted
in such a way that it was OVERWRITTEN with the earlier replica,


Corruption doesn't propagate through replication, as it does not
conform to the necessary schema for recording and propagating the
replication changes.
and therefore the newer records were lost? It seems that the data
has returned to the state it was in when this person last
synchronised. Could this be possible? And if so, how could it
happen and how can it be avoided? Help!


My bet is that it's either corruption or someone trying to cover up
a huge mistake.

My vote would be for the latter.

You might be able to recover some of the data if you restored from a
backup to a new location (not over top of the corrupted file) and
then synched the other replicas with that restored backup (it would
be a new replica in the replica set so it won't cause the problems I
described in my reply to Tom).

But I strongly doubt that's the issue.

Nov 13 '05 #7
os*******@yahoo.co.uk (Ondine) wrote in
news:93**************************@posting.google.c om:
Anyway, the replica 'farm' idea sounds interesting and I would be
grateful for any pointers as to where I can find out more about
this concept. . . .
You need to review all the information about replication on Michael
Kaplan's website, http://www.trigeminal.com. One of the articles is
about the concept of Replica Farms.

You also might want to go to Google Groups and check out the
archives of microsoft.public.access.replication.
. . . I was wondering however if it would be recommended in a
situation where:
a) The 'server' is a basic pc running Windows 98
In this day and age, I'd *never* use a Win9x PC as my file server in
a peer-to-peer network -- it's just not nearly stable enough. NT 4
or Win2K or WinXP are vastly superior in regard to stability.
b) The person working on the 'server' may not have Access 2000
running all the time (or at all)
That has nothing whatsoever to do with replication. If you're going
to do a replica farm, you need Replication Manager and the
Synchronizer, which you get with the developer tools.
c) There is no reasonably computer-literate person on-site and I
try to keep my visits to a minimum!


Then consider doing remote administration via a tool like VNC (which
is a free, lightweight program that allows remote control of a PC).
That's how I support my clients.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #8
Thanks for all your advice David. You'll laugh when I tell you that
the 'server' pc has no internet connection (client boss paranoid about
criminals getting hold of his vast fortune) which would rule out VNC
(which I use elsewhere) for now!

However, I will see if I can somehow drag them into the 21st century.

Thanks again.

Ondne.
"David W. Fenton" <dX********@bway.net.invalid> wrote in message news:<Xn**********************************@216.196 .97.142>...
os*******@yahoo.co.uk (Ondine) wrote in
news:93**************************@posting.google.c om:
Anyway, the replica 'farm' idea sounds interesting and I would be
grateful for any pointers as to where I can find out more about
this concept. . . .


You need to review all the information about replication on Michael
Kaplan's website, http://www.trigeminal.com. One of the articles is
about the concept of Replica Farms.

You also might want to go to Google Groups and check out the
archives of microsoft.public.access.replication.
. . . I was wondering however if it would be recommended in a
situation where:
a) The 'server' is a basic pc running Windows 98


In this day and age, I'd *never* use a Win9x PC as my file server in
a peer-to-peer network -- it's just not nearly stable enough. NT 4
or Win2K or WinXP are vastly superior in regard to stability.
b) The person working on the 'server' may not have Access 2000
running all the time (or at all)


That has nothing whatsoever to do with replication. If you're going
to do a replica farm, you need Replication Manager and the
Synchronizer, which you get with the developer tools.
c) There is no reasonably computer-literate person on-site and I
try to keep my visits to a minimum!


Then consider doing remote administration via a tool like VNC (which
is a free, lightweight program that allows remote control of a PC).
That's how I support my clients.

Nov 13 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Andras Kovacs | last post by:
We have a performance problem to replicate our environnement. Our java code is able to insert 100 000 rows in a table within 3 seconds using Batch Statement. For two oracle sites it takes 6...
2
by: HJ | last post by:
Hi all, I am looking at a problem we encountered with replication. Our front-end and back-end are Microsoft Access 2000. We have a design master at the server and replicas at five notebooks. The...
10
by: Daven Thrice | last post by:
I have a database that needs to be replicated over the Internet. I was hoping it would be a simple task, but apparently it is not. I've started browsing the msdn article on the topic. In the...
56
by: Raphi | last post by:
Hi, I've been using an Access application I wrote for an office with the front-end stored on all computers and the back-end on one of them serving as an Access file server. Now we're moving...
9
by: David W. Fenton | last post by:
See: Updated version of the Microsoft Jet 4.0 Service Pack 8 replication files is available in the Download Center http://support.microsoft.com/?scid=kb;en-us;321076 This includes the Jet 4...
1
by: loosecannon_1 | last post by:
All my queries are being blocked while the tables are being replicated and it is causing some 2 minute blocking. Is there a way for the Replication to allow dirty reads because I really don't...
9
by: steven | last post by:
Does anyone know how to do the following. I'm trying to mimic replication with triggers. I have 2 databases, each have these 2 tables. 1. USERS ID int NAME varchar(20)
3
by: Gert van der Kooij | last post by:
Hi, Our SQL Replication is between DB2 databases on Windows servers. I'm searching for the document which tells me how to migrate our SQL Replication environment from V8 to V9 (we also need to...
0
by: mooshak | last post by:
Hi all, I have been trying to set up replication using the Replication center. The replication center is installed on a windows box; the source and db targets are on Linux. DAS is running on...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.