Einzelnen Beitrag anzeigen

hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#15

Re: Sperrung von Datensätzen über mehrere Standorten

  Alt 2. Feb 2007, 13:23
Zitat von kalmi01:
Ich mache soetwas ähnliches ungefähr so:
1.) Server "unterhalten" sich per UDP untereinander (Jeder mit Jedem)
2.) Sobald 1 Server nicht mehr mit den anderen "spricht" schalten alle die Protokolierung ein
3.) Wenn wieder alle online sind, gleichen sie untereinander die Protokolle ab
4.) werden Transaktionen an gleichen Datensätzen festgestellt ==> Warnmeldung an den Anwender

In den Protokollen werden relevante Transaktionen festgehalten, z.B. wenn der Datensatz verändert wurde.
Jeder Server vergleicht die Protokolle der anderen beiden mit seinem eigenen.

UDP, weil es einfach ein Packet versendet, ohne sich drum zu kümmern, ob es ankommt.
Das ist wichtig, sonst wird bei Verlust der Verbindung der Server ausgebremst, weil er
versucht seine Packete los zu werden.
Was du machst, macht für mich die Replikation des Datenbank-Servers. Bei Kollisionen auf den Daten gibt es entsprechende OnConflict-Trigger die dann von mir irgendwie behandelt werden müssen.
Dies ist aber nicht mein Problem.


Zitat von sirius:
Varainte 2:
-Festlegen, dass nur Datensatz A (=Kunde xyz) auf Server 1 der einzig Richtige ist (und Datensatz B auf Server 2; je nachdem wo es wichtiger ist).
-Diese Informationen auf allen 3 Servern hinterlegen. also, dass jeder weis, auch wenn er grad keine Verbindung zu Server 1 hat, dass nur dort die richtigen Daten liegen und er eine (womöglich falsche) Kopie hat.
Dadurch kann jemand, der auf Server 2 arbeitet sehen, dass er den einen Datensatz unbedingt mit Server 1 vorher (vorm Versenden) abgleichen muss.
Die Lösung hört sich schon mal nicht schlecht an, innerhalb eines Standortes wird dann noch der Datensatz gelockt damit gleiche Zugriffe innerhalb eines Standortes nicht gehen......
Muss ich mal weiter durchdenken und mit meinem Chef bequatschen, hat mir aber schon mal viel weiter geholfen.
Für weitere Ideen bin ich natürlich auch noch offen
  Mit Zitat antworten Zitat