MS Access Forum / Replication / June 2005
Replication/Sychronization of Disconnected laptops
|
|
Thread rating:  |
Randy - 23 Jun 2005 01:05 GMT Access 2000. I have read a little about replication and synch. Iv'e created a master on my stationary computor in the office and a replica on a laptop which I use in the field. The laptop will always be disconnected, no networking etc. My hope is to somehow synchronize the laptop with the office computor via floppydisk. This is the only way can do it. The goal is no duplication of data...Any ideas...Randy
David W. Fenton - 23 Jun 2005 02:13 GMT > Access 2000. I have read a little about replication and synch. > Iv'e created a master on my stationary computor in the office and [quoted text clipped - 3 lines] > This is the only way can do it. The goal is no duplication of > data...Any ideas...Randy Can't do it.
Replication is not designed for completely disconnected scenarios.
If you try it, it will seem to work for a while, but after a long enough period of time, you'll accumulate so many dead replicas that you'll end up corrupting the replica set.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Randy - 23 Jun 2005 03:17 GMT Are there any other options/scenarios?
>> Access 2000. I have read a little about replication and synch. >> Iv'e created a master on my stationary computor in the office and [quoted text clipped - 11 lines] > enough period of time, you'll accumulate so many dead replicas that > you'll end up corrupting the replica set. David W. Fenton - 23 Jun 2005 05:09 GMT >>> Access 2000. I have read a little about replication and synch. >>> Iv'e created a master on my stationary computor in the office [quoted text clipped - 14 lines] > > Are there any other options/scenarios? Well, it depends on a number of factors:
1. will data need to be simultaneously added in both databases?
2. will data need to be simultaneously edited in both databases?
3. would the databases be used to create and manage two overlapping but mostly separated sets of data?
If the amount of 1 & 2 is relatively limited (e.g., most records are added in one database or the other, and/or most of the editing takes place in one or the other), it's not impossible to program the synchronization of data with SQL.
It's not trivial.
It requires quite a bit of planning, especially if the database schema has a number of hierarchically-related tables.
But it is doable.
It's much easier if one of the databases is the master and one the slave, or if the data being added/edited by in each database does not really overlap.
But it can be done. It's just very, very complicated, and resolving conflicts comes to the foreground much more quickly than you ever have to deal with it with Jet replication.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Randy - 23 Jun 2005 19:49 GMT Wow, sounds like I'm out of solutions. Right now the master db in the office collects all the data from the field laptops via floppy disk. The laptop has a copy of the main db. The data is exported to via transfer spreadsheet to a floppy. I then import the data from an excel file on the floppy to the main db. The problem is there are occasional duplicates...
>>>> Access 2000. I have read a little about replication and synch. >>>> Iv'e created a master on my stationary computor in the office [quoted text clipped - 43 lines] > conflicts comes to the foreground much more quickly than you ever > have to deal with it with Jet replication. David W. Fenton - 23 Jun 2005 20:15 GMT > Wow, sounds like I'm out of solutions. Right now the master db in > the office collects all the data from the field laptops via floppy > disk. The laptop has a copy of the main db. The data is exported > to via transfer spreadsheet to a floppy. I then import the data > from an excel file on the floppy to the main db. The problem is > there are occasional duplicates... Well, replication wouldn't necessarily have fixed that, depending on how you define "duplicates."
I think you need to rethink the basic architecture of your entire project. Add in a network connection for every remote PC (Internet is sufficient) and you've multiplied your options many times.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Mike Preston - 23 Jun 2005 20:34 GMT >Access 2000. I have read a little about replication and synch. Iv'e >created a master on my stationary computor in the office and a replica on a >laptop which I use in the field. The laptop will always be disconnected, no >networking etc. My hope is to somehow synchronize the laptop with the >office computor via floppydisk. This is the only way can do it. The goal >is no duplication of data...Any ideas...Randy You will get advice from the regulars here that completely disconnected synchronization will not work. In general, I might agree with them.
However, there is a workaround that works for me, but the cost of implementation might be too high for some people because it requires a number of steps, performed precisely in the right order and is more time consuming than some can stomach. If so, the regulars are right.
If not, the following might work for you.
You want to avoid over burdening your replica set with information that will, eventually (theoretically, at least), cause corruption. Usually, this is in the form of the replica information that Access maintains. As has been said, when a replica is removed from the replica set (or deemed removed because it has been replaced with another replica at the same location) the information Access stores about the removed replica is permanently (theoretically, at least) added to the information it stores. At some point (nobody really knows what this point is - see below), the entire replica set will corrupt and BAD THINGS WILL HAPPEN. Usually, this is translated as LOSS OF DATA. Loss of data is definitely a BAD THING.
The solution is so simple (and has worked for me for over 4 years, with synchronization taking place weekly) that it boggles the mind (mine, anyway) why the regulars here get so darned upset whenever this (not overburdening the replica set) is suggested. Trust me, the flames are about to go sky high.
So, the question is how to go about not overburdening the replica set with dead replica information? Simple. Completely rebuild the replica set after a synchronization. How to do that? Again, simple, although to do it right might take more time than you are willing to commit to each time: make one of the replicas the design master and re-replicate.
In your case, AFTER APPROPRIATELY BACKING UP EVERYTHING, TWICE, try the following and see whether the replica information tables aren't "clean", or at least "stabalize" and don't grow.
1) Start with a design master.
2) Make replicas for use:
a) Make a replica somewhere on your machine for your own use (one should never directly use the design master for data input).
b) Make another replica somewhere on your machine whose sole purpose is to be copied to floppy for transport to your laptop.
3) Copy replica created in Step 2b to floppy.
4) Copy floppy replica to laptop at a specific location (when you do this again, the next time through these steps, make sure you use the same location).
5) Input additional information or change information into your replica on your laptop and on your machine. That is, happily use both replicas, one on your laptop the other on your machine.
6) Copy replica from laptop back to floppy.
7) Copy replica from floppy back to same location that you created in step 2b.
8) BACKUP EVERYTHING. All copies (the design master and the two replicas).
9) Run a routine that attempts to give you confidence about number of records in each table in the design master and the replicas. The programming of this step is quite simple and is worth its weight in gold as far as peace of mind goes. Just do it.
10) Synchronize both replicas to design master (twice), and resolve any conflicts. Synchronize the design master to both replicas after resolving conflicts (twice).
11) Run your routine created in step 9 just to gain confidence that the number of records in each table of all copies of the database havn't mysteriously been modified in unsuspected ways.
12) BACKUP EVERYTHING to a different location than you selected in step 8.
13) Delete your design master.
14) Copy one of your replicas to the location where the design master was. After your synchronization in step 10, it doesn't matter which replica you use, they are both functionally identical.
15) Go into the new copy of the replica (which is in the location where your design master was) and recover the design master from that replica.
16) Delete your other replicas (do not bother the backup copies created in steps 8 and 12 - keep them for a year or two - disk space is cheap - yes, I'm suggesting you save 6 copies of your data each time you do this).
You are now back at step 1.
Go into the design master and tell it you want to see hidden objects and system objects.
Examine the tables with replica information.
If, at any point in time it looks to you like there are too many records in any of the MSys... tables and you are worried about your information corrupting, you can even go one step further: remove replication from your design master after Step 15 and then re-replicate.
I've never had to do that (re-replicate) in over 4 years. My MSys... tables are stable (the only reason they have anything in them above a few records is that I had some machines go "poof" on me in these last four years and I've never had to un-replicate the replica set - so I have a few dead replicas in my tables).
My scenario is different (and more complicated) than yours because I am synchronizing 4 locations, not just 2.
It takes me about 45 minutes each week to run all these steps. I actually run a few more steps than the ones I have laid out above because I also have a replica farm set up on the machine with the design master JUST IN CASE. Google "replica farm Kaplan" to see more information.
In a perfect world (I've tried this before), the regulars in this newsgroup would engage in an even-handed discussion about the pros and cons of this method and would assist in determining what limits should be placed on the number of records in the MSys... files before re-replicating.
They won't.
Instead, they will just jump up and down about how BAD this method is, and that if you use it you will be PUTTING YOUR DATA AT RISK. And since PUTTING YOUR DATA AT RISK is a CARDINAL SIN, if you do so, you SHOULD BE FIRED, or SHUNNED, or COMMITTED TO AN INSANE ASYLUM.
OR ALL THREE.
I work for myself so can't be fired. I don't care about being shunned by closed minded "experts." We could argue about the third one. (g)
ONE FINAL CAVEAT: If it doesn't work, don't blame me. BACKUP YOUR DATA.
Good luck,
mike
Randy - 23 Jun 2005 21:26 GMT Wow! Thanks for your input. At least there are other options...Thanks again Mike
>>Access 2000. I have read a little about replication and synch. Iv'e >>created a master on my stationary computor in the office and a replica on [quoted text clipped - 157 lines] > > mike David W. Fenton - 23 Jun 2005 22:44 GMT > Wow! Thanks for your input. At least there are other options You've been given extremely bad advice.
Don't take it.
I just don't see any reasons why you can't get a dialup Internet account for the remote PC. It doesn't have to connect often, it just has to be able to connect.
Keep this in mind:
If you follow the bad advice you've been given, there won't be anyone here in this newsgroup to advise you on how to fix any problems that arise.
On the other hand, if you use replication within its design parameters, you'll have plenty of help here working through the complexities involved in the care and feeding of replicated Jet databases.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
David W. Fenton - 23 Jun 2005 22:41 GMT >>Access 2000. I have read a little about replication and synch. >>Iv'e created a master on my stationary computor in the office and [quoted text clipped - 7 lines] > disconnected synchronization will not work. In general, I might > agree with them. I'm one of the regulars who will advise against what you're suggesting.
I have been using replicaion since 1997.
I learned all the problems by making the mistakes early on.
I lost replicas (though luckily, never an entire replica set).
I spent hours manually synchronizing replicas.
I spent hours cleaning up replica sets with large numbers of dead replicas.
I learned how much easier it is to just use replication the way it was designed to be used.
Back then, in the late 90s, WAN connectivity was very expensive (one client paid $400/month for a 56K fractional T1, and thought it was a great deal), and Windows Terminal Server was a very expensive proposition.
Well, broadband is a reality nowadays and WTS comes included in all Windows servers, as well as being available on WinXP workstations. So, to me, it is no longer the case that it is too expensive or too difficult to run replication in its intended environment, or even to avoid replication altogether by using remote desktop/terminal server.
> However, there is a workaround that works for me, but the cost of > implementation might be too high for some people because it [quoted text clipped - 14 lines] > some point (nobody really knows what this point is - see below), > the entire replica set will corrupt and BAD THINGS WILL HAPPEN. There are a number of reasons why there's no clear way to identify when things go awry, because each replica set is different, each synch history is different, each schema is different. Certain situations will likely corrupt sooner than others.
But the main point of no return is when data errors prevent a successful synch. If the data error is in a dead replica, it is very hard (though not impossible) to get rid of that data error.
Now, in Jet 4, data errors are just another form of conflict, so I don't know if they are more easily resolved.
But, either way, you're weakening the reliability of your data by choosing to use replication outside its design parameters.
> Usually, this is translated as LOSS OF DATA. Loss of data is > definitely a BAD THING. The first thing that happens is that as soon as you're in this state, you don't really know if all the replicas are synchronizing with each other successfully. That means you don't know if the data is identical in all the replicas, and that means you can no longer depend on the data.
Now, that's not corruption of the data in the conventional sense -- what data is there remains accessible, but it's no longer *trustworthy* data.
And since you can't know for sure when this state is reached, that's why the recommendation against using a setup that creates dead replicas is so strong.
> The solution is so simple (and has worked for me for over 4 years, > with synchronization taking place weekly) that it boggles the mind > (mine, anyway) why the regulars here get so darned upset whenever > this (not overburdening the replica set) is suggested. Trust me, > the flames are about to go sky high. Your solution doesn't sound simple to me. It has a number of steps that have to be followed very carefully in order to avoid problems. All this work, just to avoid paying for a dialup Internet account!
> So, the question is how to go about not overburdening the replica > set with dead replica information? Simple. Completely rebuild [quoted text clipped - 39 lines] > The programming of this step is quite simple and is worth its > weight in gold as far as peace of mind goes. Just do it. Are you also going to compare the data in every single field, or are you just going to convince yourself that tables with the same numbers of records actually contain identical data?
> 10) Synchronize both replicas to design master (twice), and > resolve any conflicts. Synchronize the design master to both [quoted text clipped - 24 lines] > > You are now back at step 1. Not with the code you've described in Step 9. Only code that verifies that all tables have exactly the same records and that every field in every record is identical would actually assure you that something hasn't gone wrong.
And, frankly, if you have code that does that, then why not just forget about starting over each round of synchs and simply mis-use replication without all the extra work?
> Go into the design master and tell it you want to see hidden > objects and system objects. [quoted text clipped - 12 lines] > me in these last four years and I've never had to un-replicate the > replica set - so I have a few dead replicas in my tables). But you don't really know how much data you've lost, because you aren't really verifying that the data in your tables is identical.
[]
> In a perfect world (I've tried this before), the regulars in this > newsgroup would engage in an even-handed discussion about the pros [quoted text clipped - 3 lines] > > They won't. From my point of view, you're giving bad advice. You're telling someone to use replication in a manner that it wasn't designed for, and your advice of how to work around the problems is not even complete.
My advice is to get the remote machines connected to the Internet, at which point all sorts of benefits for synchronizing data become available. I have a hard time imagining that this would be an insurmountable hardship, since even dialup is sufficient for indirect replication.
You, on the other hand, are recommending a method that you admit takes you nearly an hour a week to keep running smoothly (that's nearly 50 hours a year, which is not an insignificant amount of money to me), as opposed to recommending spending a small amount of money to get the remote machines connected to each other.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Mike Preston - 24 Jun 2005 00:14 GMT I appreciate the tone of your response. I don't have time to respond in depth at the moment, but I will at first opportunity.
Much of what you say makes perfect sense.
In brief, I do not recommend the approach unless one is willing to convince themselves that the approach is workable and is willing to accept the consequences of being wrong.
You mention that my 45 minutes per week is time that I might be able to invest in other activities if replication were performed via an alternate mechanism. Can you estimate the minutes via an alternate mechanism, or are you assuming that it is essentially zero and that 100% of my 45 minutes is "wasted"?
mike
David W. Fenton - 24 Jun 2005 01:08 GMT > I appreciate the tone of your response. I don't have time to > respond in depth at the moment, but I will at first opportunity. [quoted text clipped - 10 lines] > alternate mechanism, or are you assuming that it is essentially > zero and that 100% of my 45 minutes is "wasted"? Well, I was comparing the time you spend in a year (and the cost that represents) to the cost of getting an Internet connection for the remote PC so that proper indirect replication could be set up. My point was that you're spending money on a manual process in the form of your time, and if it were spent on networking, replication could be used as it's intended without worrying about the problems that can occur when you try to use it in an environment it wasn't designed for.
Now, I don't mean to claim that setting up indirect replication is easy and costs nothing in terms of time. But since that plus the Internet access costs would get you safety and save you the time of writing the code to verify that two replicas are identical, it seems preferable to me.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Mike Preston - 27 Jun 2005 06:52 GMT >> I appreciate the tone of your response. I don't have time to >> respond in depth at the moment, but I will at first opportunity. [quoted text clipped - 25 lines] >writing the code to verify that two replicas are identical, it seems >preferable to me. A couple of points (maybe three):
1) Some people doing it this way are doing so partially because they do not have MOD, so the cost of acquiring that needs to be figured in.
2) When I do my reconciliation I am, in the span of that 45 minutes, also "looking over" the data added to the database. This is an essential function that I would need to perform even if the replication were effortless.
3) This mechanism is all "direct" and therefore not only eliminates the setup of either indirect or internet replication it also eliminates any problems that might develop in using those technologies over time. You have indicated in the past that internet replication is persnickity at best. Indirect is less subject to falling over then internet, but still is a bit more prone than direct.
None of the above is a magic bullet that eliminates the appropriateness of doing things the "right" way. But each is a factor that can impact the overall decision, one way or the other.
mike
David W. Fenton - 27 Jun 2005 16:22 GMT >>> I appreciate the tone of your response. I don't have time to >>> respond in depth at the moment, but I will at first opportunity. [quoted text clipped - 44 lines] > subject to falling over then internet, but still is a bit more > prone than direct. Internet replication is something I've never used myself, because of the IIS-on-both-ends requirement, which I consider completely unacceptable (3 reasons: 1. IIS is just not safe to use anywhere, at least not before IIS 6 on Win2K3 Server; 2. functionality that is implemented via FTP, an open standard, should not require proprietary technology to use; 3. workstations should not be running FTP or Web servers, which is what Internet replication requires).
Indirect replication is not itself "persnickity," but there are enough parts of the networking equation to keep in line that there are these two problems:
1. Access developers generally don't have the knowledge to understand what the networking issues are, either to implement or to administer over the long term, AND
2. when an Access developer is working with a sysadmin, there's often a communication problem, and a resistance to the requirements of indirect replication. This reluctance often means that the network infrastructure gets incompletely configured (or frequently reconfigured), causing indirect replication to break.
So, yes, a direct replication solution is preferable to indirect when a LAN connection between remote and local replicas is possible.
When it's not, indirect is vastly preferable to your kludge approach.
In my opinion.
> None of the above is a magic bullet that eliminates the > appropriateness of doing things the "right" way. But each is a > factor that can impact the overall decision, one way or the other. The MOD cost is a one-time expense. You could even pay an Access developer to put together an installer for you, since they have the license already and can produce apps with the distributable components.
But that would probably cost somewhere around half the cost of MOD, and you wouldn't get any of the other benefits of having MOD.
Yes, it's part of the equation, but in the long run, you're still comparing front-end costs vs. long-term recurring costs (even if you slice your weekly time in half by allocating half of it to data verification that you'd be doing anyway).
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Mike Preston - 27 Jun 2005 07:26 GMT >>>Access 2000. I have read a little about replication and synch. >>>Iv'e created a master on my stationary computor in the office and [quoted text clipped - 32 lines] >Well, broadband is a reality nowadays and WTS comes included in all >Windows servers, as well as being available on WinXP workstations. I'm not sure a WinXP workstation can function as smoothly as a true Windows server when it comes to accepting connections from another computer. Am I wrong on that? For example, a windows server can accept a connection from just about any machine, I believe, while an XP Pro machine can only accept a connection from an XP Pro machine. Again, am I wrong on that?
>So, to me, it is no longer the case that it is too expensive or too >difficult to run replication in its intended environment, or even to [quoted text clipped - 24 lines] >synch history is different, each schema is different. Certain >situations will likely corrupt sooner than others. True. But since I am essentially rebuilding my replica set each week, they aren't given the chance to corrupt.
>But the main point of no return is when data errors prevent a >successful synch. If the data error is in a dead replica, it is very >hard (though not impossible) to get rid of that data error. True. Luckily, I have never been precluded from a successful synch. Maybe it is because I have the farm there waiting to pitch in, if needed. In my case, the "farm" is just 3 additional replicas that, at the beginning of the week, are identical to the other replicas and the design master.
>Now, in Jet 4, data errors are just another form of conflict, so I >don't know if they are more easily resolved. > >But, either way, you're weakening the reliability of your data by >choosing to use replication outside its design parameters. Concur. Completely. Anybody who does this is on their own if things fall over.
>> Usually, this is translated as LOSS OF DATA. Loss of data is >> definitely a BAD THING. [quoted text clipped - 4 lines] >is identical in all the replicas, and that means you can no longer >depend on the data. I don't disagree. If I ever was in that position, I know I would need to resurrect the prior replica set and then manually cull the new records from each of the newer replicas. Yes, I know that data edits would be lost unless I ran a compare against the prior replica set, field by field. Thankfully, my replica users primarily add new records, with very little editing of previous data. And even more thankfully, this has never happened to me.
>Now, that's not corruption of the data in the conventional sense -- >what data is there remains accessible, but it's no longer >*trustworthy* data. Agreed.
>And since you can't know for sure when this state is reached, that's >why the recommendation against using a setup that creates dead >replicas is so strong. I'm not sure I agree with this. You know you have reached this state when one of the replicas fails to replicate with another member. If that never happens, one never reaches this state.
>> The solution is so simple (and has worked for me for over 4 years, >> with synchronization taking place weekly) that it boggles the mind [quoted text clipped - 4 lines] >Your solution doesn't sound simple to me. It has a number of steps >that have to be followed very carefully in order to avoid problems. Agreed. But like most things, the 10th time you do it, it is very little intellectual overhead, even though it still takes the same amount of time.
>All this work, just to avoid paying for a dialup Internet account! Well, it is a bit more involved that just avoiding a dialup internet account, and I think you know that. If it were just that, then it would be internet replication and that is a technology that I don't think makes a lot of sense, personally. I'm reminded of the conversations that MichKa has had with folks when they complain about the condition that IIS must be left in (something about leaving the dropbox directory wide open) and other such things that turned me off to internet replication long ago.
>> So, the question is how to go about not overburdening the replica >> set with dead replica information? Simple. Completely rebuild [quoted text clipped - 43 lines] >you just going to convince yourself that tables with the same >numbers of records actually contain identical data? I do not compare the data in every single field. I run the record counts and I also run enough numeric field summations to convince myself that the data has integrity from one week to the next.
I've said this before (in messages many moons ago), but maybe it is just my schema that allows it to work for me and it will never work for anybody else. But it does work for me and after more than 4 years you would think I would find one record with wrong information on it if the darn thing was going to go sideways on me. What I mean by this is that, even after doing my double checks, you would think that I would discover a non-numeric field at some point (maybe weeks later) where things haven't gone properly. Thankfully, I haven't. And neither have those who are the users of the output from the .mdb file.
Or I think I would have heard about it by now.
>> 10) Synchronize both replicas to design master (twice), and >> resolve any conflicts. Synchronize the design master to both [quoted text clipped - 29 lines] >every field in every record is identical would actually assure you >that something hasn't gone wrong. I think you can reach a 99.99% confidence level with something less than verifying each and every field. But I concede the point, nonetheless.
>And, frankly, if you have code that does that, then why not just >forget about starting over each round of synchs and simply mis-use [quoted text clipped - 19 lines] >But you don't really know how much data you've lost, because you >aren't really verifying that the data in your tables is identical. You misunderstand me. I'm saying if the number of records in those tables looks like they are continually building up, long before you have a problem with synchronization, rebuild the replica set from the ground up to ensure that you don't run into a problem. I'm not saying that once something fails to replicate then go about the above.
>> In a perfect world (I've tried this before), the regulars in this >> newsgroup would engage in an even-handed discussion about the pros [quoted text clipped - 8 lines] >and your advice of how to work around the problems is not even >complete. Well, I understand your position and I think you understand mine. And I do concur that this mechanism is outside of that which replication was intended to cover.
>My advice is to get the remote machines connected to the Internet, >at which point all sorts of benefits for synchronizing data become >available. I have a hard time imagining that this would be an >insurmountable hardship, since even dialup is sufficient for >indirect replication. But you have stated in many messages that indirect is a royal pain. I would not recommend that to anybody.
>You, on the other hand, are recommending a method that you admit >takes you nearly an hour a week to keep running smoothly (that's >nearly 50 hours a year, which is not an insignificant amount of >money to me), as opposed to recommending spending a small amount of >money to get the remote machines connected to each other. Point taken. Definitely a choice.
Thanks for the dialogue.
mike
David W. Fenton - 27 Jun 2005 16:50 GMT []
>>I'm one of the regulars who will advise against what you're >>suggesting. [quoted text clipped - 28 lines] > believe, while an XP Pro machine can only accept a connection from > an XP Pro machine. Again, am I wrong on that? I'm not sure. I don't have any clients running WinXP with whom I have used remote desktop. I use VNC, instead, because for my work with these workstations, the client and I both need to be seeing the desktop at the same time.
I'm not really recommending workstation-to-workstation connections (because there are so many downsides that this greatly limits the number of scenarios where it has any benefit), just pointing out the possibility.
>>So, to me, it is no longer the case that it is too expensive or >>too difficult to run replication in its intended environment, or [quoted text clipped - 28 lines] > True. But since I am essentially rebuilding my replica set each > week, they aren't given the chance to corrupt. So far as you know.
That is, you can't really say that all the replicas are identical until you check every field of every record in both replicas against each other.
That is an unacceptable risk.
But if you've already written the code to do this kind of check, well, good luck.
>>But the main point of no return is when data errors prevent a >>successful synch. If the data error is in a dead replica, it is [quoted text clipped - 5 lines] > replicas that, at the beginning of the week, are identical to the > other replicas and the design master. Well, it's not a problem until it hits you.
If you don't break the rules, you have vastly decreased the risk of the problem.
>>Now, in Jet 4, data errors are just another form of conflict, so I >>don't know if they are more easily resolved. [quoted text clipped - 4 lines] > Concur. Completely. Anybody who does this is on their own if > things fall over. It's pretty clear to me at this point that you *do* understand the risks for yourself, so I'll stop ragging on *you* for using it yourself. ;)
But I don't think you can count on that understanding in the people who might read your scenario. There are just too many steps that can't be automated, and that means human error creeps into the equation.
Now, it's something I might try myself if I were doing it, but I'd never hand off the task to a client. Smart as my clients are, that would be putting too much trust in their infallibility.
>>> Usually, this is translated as LOSS OF DATA. Loss of data is >>> definitely a BAD THING. [quoted text clipped - 12 lines] > primarily add new records, with very little editing of previous > data. And even more thankfully, this has never happened to me. Well, then, add the potential cost of recovering this added data from those replicas should your method fail. How many hours would *that* take? Add in also, the cost of the loss off edits, and I think that most clients would not be willing to spend their money that way.
>>Now, that's not corruption of the data in the conventional sense >>-- what data is there remains accessible, but it's no longer [quoted text clipped - 9 lines] > state when one of the replicas fails to replicate with another > member. If that never happens, one never reaches this state. Not true. You *don't know* if problems are blocking full synchronization. It doesn't take a failed synch -- it only takes the errors (which can be generated in an otherwise successful synch).
>>> The solution is so simple (and has worked for me for over 4 >>> years, with synchronization taking place weekly) that it boggles [quoted text clipped - 9 lines] > little intellectual overhead, even though it still takes the same > amount of time. Ah, familiarity of task makes it seem easy.
That means your brain shuts off and you accidentally skip a step and end up losing your current synch data, and have to recover manually from the backups.
Right?
Factor in that cost.
>>All this work, just to avoid paying for a dialup Internet account! > [quoted text clipped - 7 lines] > other such things that turned me off to internet replication long > ago. A dialup account enables indirect replication, not just Indirect (which I would never consider using for the reasons outlined above). The way to make indirect replication work over dialup Internet is to use a VPN connection to the server. These are now very easy to set up, even workstation-to-workstation (though the default security settings are poor).
If you don't want to spring for the dialup Internet, then you can set up your server to accept dialin connections, and then the remote machines can connect that way. But if you're supporting very many users, you'd need to set up multiple dialin lines and that's expensive. That was a solution way back when, but I think very few companies now maintain their own dialin servers these days. Broadband and VPNs have made them pretty much obsolete.
But they can still be a very good solution for connecting two PCs that have only dialup Internet access.
[]
>>> 9) Run a routine that attempts to give you confidence about >>> number of records in each table in the design master and the [quoted text clipped - 9 lines] > counts and I also run enough numeric field summations to convince > myself that the data has integrity from one week to the next. You've convinced yourself, but you haven't convinced me.
Are you your own client here, or is this for a paying client? Are they aware of what you're doing here?
> I've said this before (in messages many moons ago), but maybe it > is just my schema that allows it to work for me and it will never [quoted text clipped - 8 lines] > > Or I think I would have heard about it by now. I had a situation with a programming error in an application years ago that took nearly a year of daily use to be discovered, and then almost an entire year to diagnose and fix. And it was a case where data edits to the records were not getting saved -- but it happened very, very seldom, so it just wasn't noticed for a very long time. Once it was discovered, it was found that lots of people companywide had been noticing the discrepancies, but assumed it was their own bad memory, or mistaken entries.
This taught me never to assume anything about the reliability of my code, nor about my ability or the ability of my users to notice errors.
[]
>>From my point of view, you're giving bad advice. You're telling >>someone to use replication in a manner that it wasn't designed [quoted text clipped - 4 lines] > And I do concur that this mechanism is outside of that which > replication was intended to cover. Well, I hope nobody follows your advice, since you're claiming no responsibility for whether or not it will work for them.
>>My advice is to get the remote machines connected to the Internet, >>at which point all sorts of benefits for synchronizing data become [quoted text clipped - 4 lines] > But you have stated in many messages that indirect is a royal > pain. I would not recommend that to anybody. It's much less of a pain to keep running than the work you're doing to do your replication kludge.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Mike Preston - 27 Jun 2005 20:28 GMT <snipping time>
>>>Well, broadband is a reality nowadays and WTS comes included in >>>all Windows servers, as well as being available on WinXP [quoted text clipped - 16 lines] >number of scenarios where it has any benefit), just pointing out the >possibility. OK.
>> True. But since I am essentially rebuilding my replica set each >> week, they aren't given the chance to corrupt. [quoted text clipped - 9 lines] >But if you've already written the code to do this kind of check, >well, good luck. No, I have not. Never had the need. I know, I know...
>>>But the main point of no return is when data errors prevent a >>>successful synch. If the data error is in a dead replica, it is [quoted text clipped - 7 lines] > >Well, it's not a problem until it hits you. Of course.
>If you don't break the rules, you have vastly decreased the risk of >the problem. Theoretically, this statement is hard to argue with. However, I don't know how much less than zero problems in 4+ years I can go.
>>>Now, in Jet 4, data errors are just another form of conflict, so I >>>don't know if they are more easily resolved. [quoted text clipped - 8 lines] >risks for yourself, so I'll stop ragging on *you* for using it >yourself. ;) Thanks.
>But I don't think you can count on that understanding in the people >who might read your scenario. There are just too many steps that >can't be automated, and that means human error creeps into the >equation. Always a possibility.
>Now, it's something I might try myself if I were doing it, but I'd >never hand off the task to a client. Smart as my clients are, that >would be putting too much trust in their infallibility. Agreed.
>>>> Usually, this is translated as LOSS OF DATA. Loss of data is >>>> definitely a BAD THING.
>>>And since you can't know for sure when this state is reached, >>>that's why the recommendation against using a setup that creates [quoted text clipped - 7 lines] >synchronization. It doesn't take a failed synch -- it only takes the >errors (which can be generated in an otherwise successful synch). Are those errors completely silent, or do they add a record to an MSys table here and there?
>> ... But like most things, the 10th time you do it, it is very >> little intellectual overhead, even though it still takes the same [quoted text clipped - 7 lines] > >Right? Theoretically correct. Hasn't happened to me, yet, but then again, if it had, we wouldn't be having this discussion.
>Factor in that cost. So far, zero.
>A dialup account enables indirect replication, not just Indirect internet is what I understood you to mean with the last word of the above line.
>(which I would never consider using for the reasons outlined above). >The way to make indirect replication work over dialup Internet is to >use a VPN connection to the server. These are now very easy to set >up, even workstation-to-workstation (though the default security >settings are poor). VPN's are getting easier all the time. But they still require a bit of setting up and sometimes that involves the dreaded folks from the IS department, and sometimes the purchase of a VPN client. They are typically less expensive than hardware routers, though, so if you find yourself with a hardware router that is unresponsive to the Microsoft VPN client, you will likely end up buying a VPN client rather than replacing your router. I will say this, if you have a working VPN and MOD, I see no reason why indirect shouldn't be tried first, long before attempting the scenario I describe.
>> I do not compare the data in every single field. I run the record >> counts and I also run enough numeric field summations to convince >> myself that the data has integrity from one week to the next. > >You've convinced yourself, but you haven't convinced me. That's ok.
>Are you your own client here, or is this for a paying client? Are >they aware of what you're doing here? My, myself and I. I wouldn't foist this on anybody else who wasn't taking full responsibility for it. If I didn't make this clear before, I apologize. [I thought I had.] I can only see it being applicable where there are significant barriers (in the mind of the individual making the decision, not in your mind, or in mine) to implementation via MOD, whether by IIS/internet or VPN/indirect.
>I had a situation with a programming error in an application years >ago that took nearly a year of daily use to be discovered, and then [quoted text clipped - 8 lines] >code, nor about my ability or the ability of my users to notice >errors. Understood. Remember, I'm reviewing the newly input and edited data on a weekly basis, so I'm the one most likely to be suffering from the bad memory or mistaken entries.
>>>From my point of view, you're giving bad advice. You're telling >>>someone to use replication in a manner that it wasn't designed >>>for, and your advice of how to work around the problems is not >>>even complete. I left this in just because I think readers of this thread deserve to hear this with every message they read, so if they choose my path, they have been warned and warned and warned......
>> Well, I understand your position and I think you understand mine. >> And I do concur that this mechanism is outside of that which >> replication was intended to cover. > >Well, I hope nobody follows your advice, since you're claiming no >responsibility for whether or not it will work for them. Truth be told, nobody claims any responsibility for whether anything posted in a newsgroup will work. How many times have questions been put to MichKa regarding one or more of his unsupported (yet clearly phenomenal) helper applications only to find that nobody else can help and he doesn't want to set a precedent by offering support? You pays your money and you takes your chances.
>>>My advice is to get the remote machines connected to the Internet, >>>at which point all sorts of benefits for synchronizing data become [quoted text clipped - 7 lines] >It's much less of a pain to keep running than the work you're doing >to do your replication kludge. We can certainly agree to disagree on that one, based on my results to date.
mike
David W. Fenton - 28 Jun 2005 00:17 GMT []
>>>>And since you can't know for sure when this state is reached, >>>>that's why the recommendation against using a setup that creates [quoted text clipped - 11 lines] > Are those errors completely silent, or do they add a record to an > MSys table here and there? No, there will be an error record in one or more of the relevant system tables.
>>> ... But like most things, the 10th time you do it, it is very >>> little intellectual overhead, even though it still takes the [quoted text clipped - 14 lines] > > So far, zero. Well, so far, funeral expenses for me personally are zero, but that doesn't mean I don't know that those expenses will, indeed, one day be incurred, and prepare for them accordingly.
>>A dialup account enables indirect replication, not just Indirect > > internet is what I understood you to mean with the last word of > the above line. No, Internet replication and indirect replication are two completely distinct replication methods. The latter was not designed to run over the Internet, but on an SMB network connection. I used direct dialup for this in the past.
Nowadays, I use a VPN connection across the Internet to do indirect replication, because the VPN provides with an SMB network connectiong inside the VPN tunnel.
>>(which I would never consider using for the reasons outlined >>above). The way to make indirect replication work over dialup [quoted text clipped - 6 lines] > from the IS department, and sometimes the purchase of a VPN > client. . . . If you've got an IT department to work with, I'd say it's usually easier than when you don't. Indeed, I hardly ever encounter any organization with a dedicated IT person that doesn't already have a VPN in place.
> . . . They are typically less expensive than hardware routers, > though, so if you find yourself with a hardware router that is > unresponsive to the Microsoft VPN client, you will likely end up > buying a VPN client rather than replacing your router. . . . Well, most organizations that have a VPN in place will provide a client to the end users who have a need to use that VPN, so I just don't see the issue here.
> . . . I will say > this, if you have a working VPN and MOD, I see no reason why > indirect shouldn't be tried first, long before attempting the > scenario I describe. And I'm saying that even in a small office scenario where there isn't an existing VPN, that the difficulty of setting up the VPN is actually quite small, even workstation-to-workstation. Now, it's a little harder to properly secure such a connection (because the default MS VPN client/server setup uses non-secure protocols), but it's still not a huge obstacle.
And the setup is a one-time expense, as is the setup of the indirect replication infrastructure.
[]
>>Are you your own client here, or is this for a paying client? Are >>they aware of what you're doing here? [quoted text clipped - 6 lines] > mine) to implementation via MOD, whether by IIS/internet or > VPN/indirect. In all the back and forth I'd lost track of that fact. I'm glad you re-iterate it here for the benefit of those who encounter this discussion in the Google archives.
[]
>>>>From my point of view, you're giving bad advice. You're telling >>>>someone to use replication in a manner that it wasn't designed [quoted text clipped - 4 lines] > to hear this with every message they read, so if they choose my > path, they have been warned and warned and warned...... Admirable of you.
I just thought there was quite a bit of belligerence in your original post, in anticipation of someone like me disputing you.
Turns out you're more reasonable and level-headed than my reading of the "belligerence" suggested to me at the beginning of the discussion.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
Frank Mansfield - 29 Jun 2005 01:04 GMT I have been reading your dialog. These issues of dead replicas may be causing some of the security settings not to work properly in the replicated database.
Currently, I copy the replica to my system, then sync the database and then copy the replica back to his machine via a memory key or ftp transfer to a server and then to his machine.
I have a replicated database on a laptob that is connected to the internet via a cable modem at a clients home. How can one sync the database for design changes accross the internet via VPN without having a perament IP address?
> [] > [quoted text clipped - 130 lines] > the "belligerence" suggested to me at the beginning of the > discussion. David W. Fenton - 30 Jun 2005 02:03 GMT =?Utf-8?B?RnJhbmsgTWFuc2ZpZWxk?= <FrankMansfield@discussions.microsoft.com> wrote in news:2AA43249-84EA-49B1-AB7D-17884760E0BE@microsoft.com:
> I have been reading your dialog. These issues of dead replicas may > be causing some of the security settings not to work properly in [quoted text clipped - 3 lines] > and then copy the replica back to his machine via a memory key or > ftp transfer to a server and then to his machine. This is a very, very bad thing -- very dangerous to the long-term integrity of your database.
> I have a replicated database on a laptob that is connected to the > internet via a cable modem at a clients home. How can one sync the > database for design changes accross the internet via VPN without > having a perament IP address? If your design changes are for forms/reports, forget about it -- split the database and replicate only data.
When the other end doesn't have a fixed IP address, there are a couple of workarounds:
1. call the person on the other end and have her check the IP address by going to http://WhatIsMyIP.com
OR
2. use a Dynamic DNS service. The way this works is the machine on the other end runs a process that periodically connects to the dyamic DNS service and says "Hi! I'm [the name of your host] and this is my IP address." The dynamic DNS service then updates its DNS server to point to that IP address. Usually you end up with a host name like xxx.DynamicDNS.com, where xxx is a name you choose for yoursel, and DynamicDNS.com is the domain of your dynamic DNS service. When you request a connection to xxx.DynamicDNS.com, DynamicDNS.com's DNS server hands out the last IP address the process running on the computer with the dynamic IP address gave to it (it could conceivably be wrong, if the IP changed after the last update, so the update interval has to be fairly short, like 15 minutes).
OR
3. assume the IP address hasn't change, and do #1 only if you can't connect to the last IP you used.
Most broadband providers don't change your IP address often (my RoadRunner IP has been the same for nearly 18 months).
Now, once you've got the IP address, and both ends are set up to initiate a VPN tunnel, you want to make sure you don't attempt direct replication over it. That means you can't use the Access user interface to do it -- you must have Replication Manager and the tools that come with it to do indirect replication.
 Signature David W. Fenton http://www.bway.net/~dfenton dfenton at bway dot net http://www.bway.net/~dfassoc
|
|
|