> 
> > 1. differenzen rausfinden sind sehr aufwendig
> 
> ist klar Recordset in Recordset ... das macht mich ja ungl�cklich
> 
> 
> > 2. Es ist nicht sehr effizient st�ndig (alle paar minuten) komplette
> > DB-Kopien �bers Internet zu schaufeln.... schon gar nicht, wenn
> > man eine schlechte
> > Anbindung hat, aber sonst auch nicht...
> 
> Naja deswegen will ich ja die differenz der Db's bilden, daraus dann
> wiederum ein XML erzeugen, da� ich dann auf den Server schicke, um dort
> wiederum anhand dieses XML eine eintragung zu machen

Ja, aber um eine Differenz zu erzeugen, musst Du  per Definition 2 DBs
haben.... also eine DB �bers Netz schicken.... - oder?

> 
> >
> > an welcher stelle kannst du �berhaupt ansetzten? was kannst Du �ndern?
> > oder ist es so, dass eine software, die eigentlich nicht
> > netzwerkf�hig ist,
> > verteilt(mit �bgleich) einzusetzen ist?
> 
> Naja ich kann nur werte in die DB reinschreiben und auslesen.
> Was die App macht kann ich nicht sagen.

Das ist schlecht... d.h. Du musst 2 DBs komplett miteinander vergleichen,
obwohl sie auf zwei verschiedenen Rechnern liegen....
Prinzipiell w�rde sich hier anbieten von jeder DB-Zeile nur ein Hash zu
verschicken, diese zu vergleichen und dann nur die Unterschiedlichen
auszutauschen...
Da man aber dann nicht weiss wo was ge�ndert wurde(Unterschied k�nnte auch
bedeuten, dass auf dem MainServer was ge�ndert wurde), muss zumindest der
Client sich merken, welche Daten er ge�ndert hat, was aber in Deinem Fall(da Du
keine timestamps o.�. einf�gen kanst) einen Vergleich der aktuellen DB mit der
DB des letzten Updates bedeutet...
D.h. wir haben jetzt einen kompletten DB-Vergleich lokal und zus�tzlich eine
Hash-Erzeugung auf der kompletten DB, damit man nicht die gesamte DB �bers
Netz schicken muss(damit der Server rausfinden kann, was bei ihm sich ge�ndert
hat...)
Das ist alles sehr unbefriedigend... und verteilt zuviel Last auf die
ClientServer.

Wenn Du wirklich nicht die Applikation �ndern kannst, was eigentlich das
beste w�re, dann w�rde ich eine besser verteilte L�sung vorschlagen:
Sowohl Clients als auch Server kopieren ihre Datenbanken alle x Minuten (x
m�glichst klein) auf eine temp-DB.
Diese temp-DB wird mit der letzten temp-DB verglichen (Mann hat also immer 3
DB auf jedem Rechner die aktuelle DB, mit der gearbeitet wird: DB(t), die
letzte DB: DB(t-1) und die vorletzte... DB(t-2); das ist wichtig, damit man
w�hrend des Vergleichens nicht noch �nderungen reinbekommt...)

Die �nderungen werden mit Zeitstempel in eine eigene DB geschrieben, d.h.
man merkt sich zu jedem Zeitpunkt welche �nderungen es auf der DB gab.

zus�tzlich merken sich alle Clients den Zeitpunkt des letzten Updates.
Bei einem erneuten update, wird dem Server die eigenen updates seit dem
letzten update und die letzte updatezeit mitgeteilt, der daraufhin einem alle
seine updates seit diesem zeitpunkt schickt und dann die bekommenen Updates
einbaut.
Falls es Datens�tze gibt, die sowohl auf dem Server, als auch auf dem Client
ver�ndert wurden, dann wird nach dem Timestamp entschieden... das �ltere
�berlebt; Bei gleichem Timestamp bekommt der Client Recht!

Die geloggten �nderungen kann man auf dem Server l�schen, wenn sie ein
bestimmtes Alter erreicht haben, so dass sicher ist, dass alle Client abgeglichen
haben, z.B. nach einem Monat...
Auf den Clients kann man gleich nach dem update l�schen...

Was wir mit diesem System eigentlich haben ist ein Nachbauen des timestamps,
bloss dass der timestamp nicht kontinuirliche Werte animmt, sondern nur
werte des vergleich-zeitpunktes anehmen kann..
Das war n�tig, weil man nicht ins System eingreifen kann...
Das eigentlich abgleichen ist dann kein Aufwand mehr.
Man k�nnte sogar den Vergleichsjob von dem Updatejob entkoppeln.... z.B: f�r
w�hlverbindungen...:
Verglichen wird alle 10 min, wie alle anderen Cleints auch, aber ein update
findet nur 4 mal pro Tag statt, weil teuer...

Claudius

-- 
GMX - Die Kommunikationsplattform im Internet.
http://www.gmx.net


| [aspdecoffeehouse] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp

Antwort per Email an