Einzelnen Beitrag anzeigen

Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Firebird - Client bei Änderung informieren

  Alt 23. Okt 2012, 10:29
Datenbank: Firebird • Version: 2.5 • Zugriff über: dbx
Moin,

ich suche eine Lösung für folgendes Problem:
Ich habe Geräte, die eine Statusinformation periodisch in eine Datenbank schreiben.

Nun habe ich einen Client (der auf einem anderen PC läuft), der diese Informationen auf einem Statusbildschirm anzeigt. Dort rufe ich periodisch diese Information ab und stelle sie auf dem Bildschirm dar. Das hat für mich mehrere Probleme:
  1. Netzwerktraffic. Ich muss die Datebank ständig abfragen um zu ermitteln, ob sich die Information geändert hat und diese ggf. darstellen
  2. aus 1. resultiert natürlich Arbeit für die Datenbank, selbst wenn sich die Information nicht geändert hat
  3. Die Informationen werden verzögert dargestellt. Polle ich die Datenbank z.B. alle 30 Sekunden, dann sind die dargestellten Informationen ggf. 30 Sekunden alt. Polle ich alle 2 Sekunden, bekomm ich mit Punkt 1 und 2 Probleme, weil der Traffic ansteigt.
Ich würde mir wünschen, dass ich mich als Client an der Datenbank anmelden kann und irgendwie einen Callback bekomme, wenn sich die Information ändert (vielleicht ausgelöst durch einen Datenbanktrigger). Ich stelle mir das wie einen Observer für die Datenbank vor.
Es kann auch sein, dass der Statusbildschirm an mehr als einem PC gleichzeitig gestartet wird. Es müssten also x Observer möglich sein.

Gibt es sowas in der Art? Oder wie könnte man das Problem sonst lösen?
Jens
  Mit Zitat antworten Zitat