Re: [Allegro] Mehrplatzsystem - Synchronisation über Server
Thomas Berger
ThB at Gymel.com
Di Feb 5 09:12:27 CET 2013
Lieber Herr Tietjens, lieber Herr Allers,
>> Dann dachte ich mir, beim Start von Allegro-C die Daten vom Server auf
>> den Arbeitsrechner zu speichern, die log-Datei zu löschen, mit dem
>> Datenbestand auf dem Client zu arbeiten, die log-Datei in eine .alg
>> umzuwandeln (LOG2ALG.EXE) und damit und dem Programm UPDATE.EXE die
>> Datenbank auf dem Server über das Netzlaufwerk zu synchronisieren. Das
>> geht aber auch nicht, k.a. warum.
>
> So wurde es gemacht, als es noch keine Netze gab oder bevor Allegro netzfähig war, aber heute ich diese
> Technik mehr als überholt.
Ich war vor Jahren in einem solchen Fall damit befasst, die
Scherben aufzukehren:
Solche lokalen Kopien von Datenbanken haben eine gewisse Anzahl
von Datensaetzen die gewisse Identnummern tragen. Wird damit
unabhaengig voneinander (schreibend) weiter gearbeitet,
entstehen neue Datensaetze mit jeweils einer internen Satznummer
und einem Primaerschluessel in der dafuer eingerichteten Kategorie
(etwa #00 bei A.CFG). Beide entstehen i.W. durch "Hochzaehlen"
von etwas vorhandenem.
Wird also in zwei Datenbanken unabhaengig voneinander gearbeitet,
entstehen zwangslaeufig Datensaetze mit gleichen Satznummern
und Primaerschluesseln, normalerweise aber durchaus verschiedener
Bedeutung. Kein Updateprozess (der Logdatei im "Playback"-Modus
die internen Satznummern nutzend bzw. der in .ALG umgewandelten
Logdatei, die Primaerschluessel nutzend) wird Ihnen diese
verschiedenen Bedeutungen auseinander halten. Die Bemerkungen
zu "Replikation" im Handbuch und sonstwo sind stets im Sinne
einer "Master-Slave"-Replikation zu verstehen, d.h. zwischen
zwei Synchronisationen wird unbedingt und stets in maximal eine
der Datenbankkopien geschrieben.
Das von Ihnen Beschriebene funktioniert, wenn man (etwa durch
individuelle Prae- oder Suffixe an der Identnummer) Vorkehrungen
trifft, dass jede dieser Datenbankkopien garantiert Identnummern
erzeugt, die verschieden von denen jeder anderen Kopie sind.
Dann kann man ein Update-Verfahren anhand der umgewandelten
Logdatei oder sogar anhand eines einfachen Exports der seit einem
Stichzeitpunkt geaenderten Datensaetze tatsaechlich eine saubere
Replikation hinbekommen, allerdings muss auch hier durch
redaktionelle Vorgaben (wer darf wann Saetze mit "fremden"
Identnummern anfassen) die Anzahl der Bearbeitungskonflikte
minimiert werden, da die hoechstens automatisch erkannt, aber
nicht automatisiert geloest werden koennen.
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro