AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

Ein Thema von Harry Stahl · begonnen am 15. Jun 2015 · letzter Beitrag vom 16. Jun 2015
 
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#7

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 02:38
Das ist so allgemein schwer zu sagen, da ich deinen genauen Anwendungszweck nicht kenne.

Ich kann dir mal ein Beispiel geben, wie MySQL das macht. MySQL unterstützt einen Master-Slave-Modus, bei denen die Slaves ihren Datenbestand synchron zum Master halten. MySQL führt dabei eine Nummer mit, die mit jeder Änderung am Datenbestand erhöht wird. Die Slaves sind mit dem Master verbunden und führen Änderungen sequentiell ein. Startest du einen Slave neu, so beginnt er, dieses s.g. "Backlog" von seinem letzten Datenstand aufzuholen.

Das klappt soweit meistens ganz gut. (Ich will nicht sagen dass das problemlos klappt, aber das Problem ist meist eher MySQL als dieses System)

Es gibt einige Situationen, in denen man daran per Hand rumwerkeln muss. Beispielsweise führt der Server sein Backlog (also die Liste der Änderungen am Datenbestand) nicht unendlich lang. Ist ein Slave langer offline als das Backlog alt ist, so kann er den Bestand nicht mehr automatisch abgleichen. In dem Fall muss man vorgehen, wie man es auch beim Hinzufügen eines neuen Slaves tut. Dazu stellt man sicher, dass der Master seine Daten nicht mehr ändert (er speichert Änderungen solange im RAM) und macht ein Backup. Das Backup wird auf neue Slaves eingespielt. Der Master darf dann weiterarbeiten. Wichtig ist, das man vor dem reaktivieren des Masters aufschreibt, welche Revisionsnummer (also die Position im Backlog bzw. die Nummer die zur Synchronisation dient) das Backup hat. Nach dem Einspielen des Backups auf den Clients gibt man ihnen diese Nummer mit und sie sind wieder automatisch in der Lage synchron zum Master zu bleiben.

Im Prinzip also eine Mischung aus beiden deiner Vorschläge. Das komplette Neuladen der Datenbestände muss man in MySQL leider manuell machen, das ließe sich aber bestimmt automatisieren in deinem Programm.

Hilft dir das eventuell weiter als Ansatz?
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz