Anwendung benachrichtigen
-
hallo,
gibt es eigentlich ein Standardvorgehen, wie man eine Anwendung darüber informiert, dass in einer Tabelle etwas geändert wurde?
Bei mir geht es um Berechtigungen für Mitglieder, die Berechtigungen möchte ich von der Anwendung einmal laden um bei Anfragen schnell antworten zu können.
Wenn sich jetzt ein Berechtigung für ein Mitglied ändert, oder ein neues Mitglied hinzukommt, dann müssen die Berechtigungen im Speicher der Anwendung natürlich auf den neuesten Stand gebracht werden.Ich könnte dazu natrülich in regelmäßigen Abständen pollen, aber das finde ich einfach nicht besonders elegant.
Unter postgres gibt es Listen/Notify, mit Listen kann ich dann so lange warten, bis von einer anderen das entsprechende Notify aufgerufen wird.Ganz Alternativ könnte ich natürlich auch noch einen ganz anderen Kommunikationsweg zu den Anwendungen wählen. Am liebsten wäre mir aber etwas über die DB, da darüber die Anwendungen sowieso schon verbunden sind.
jenz
-
welches DBS?
-
meistens postgres, aber auch mysql und oracle.
Ich hätte aber gerne eine Standardlsg, deshalb habe ich das System extra nicht angegeben.
-
Es gibt da keinen Standard.
Jedes RDBMS hat seine eigenen Features.
Du kannst z.B. bei MSSQL eigene Assemblies erstellen die sogar Socketverbindungen aufmachen können.
Du könntest einen Trigger schreiben der die Änderungen in eine eigene Tabelle schreibt und aus dieser dann pollen.
Danach wieder aus der Änderungstabelle löschen um sie klein zu halten.
Du könntest eine Mail senden wenn sich was ändert.
Ist natürlich alles nicht in jedem RDBMS vorhanden. In MS SQL > 2005 kann man das alles vom SQLSERVER aus.
-
alles klar,
das habe ich mir schon gedacht.derzeit mache ich es mit triggern die dann die primary keys der geänderten daten in eine änderungstabelle schreiben.
die polle ich ab und lösche die daten dann...
jenz