Information über Änderungen

miketech

Bekanntes Mitglied
Hallo zusammen,

weiß jemand, ob es eine Möglichkeit gibt, sich über Änderungen in der Datenbank informieren zu lassen? Ich möchte bspw. eine bestimmte Java-Methode aufrufen, wenn ein neuer Datensatz hinzugefügt wurde oder ein bestimmter Datensatz geändert wurde.

Viele Grüße

Mike
 
ein großer Standard ist
Datenbanktrigger ? Wikipedia
aber ob man damit externe Programme informieren kann?

allgemein sollte die Datenbank eine Senke sein,
falls mehrere Programme unabhängig zugreifen, dann ein Programm als Vorstufe schalten,
aller Zugriffe gehen über dieses Programm, dort kann gemerkt, informiert werden usw.

es ist bisschen viel verlangt, dies direkt in jede der zahlreichen DB einzubauen, die ja auch programmiersprachenunabhängig sind,
eine eigene Stufe davor würde für alle Datenbanken gleich funktionieren
 
Moin,

weiß jemand, ob es eine Möglichkeit gibt, sich über Änderungen in der Datenbank informieren zu lassen? Ich möchte bspw. eine bestimmte Java-Methode aufrufen, wenn ein neuer Datensatz hinzugefügt wurde oder ein bestimmter Datensatz geändert wurde.
Meinst Du, dass die DB automatisch Deine Anwendung informieren soll?
Gibt es IMHO nicht ....

natürlich könntest Du zyklisch die DB abfragen, aber der entsprechende Vergleich würde wohl (je nach Größe der Tabelle) seeehr heftig !

Gruß
Klaus
 
ein Tick effektiver geht es beim zyklischen Zugriff schon, wenn alle Änderer mitspielen bzw. in der DB Trigger angelegt sind,
Änderungen protokollieren, nur einzelne Zustandsdaten prüfen
 
Hi,

DB Trigger sind mir natürlich ein Begriff, aber mir ist keine Möglichkeit bekannt, wie ich darauf in einer Java Anwendung reagieren kann.

Dann gehen wir einen Schritt zurück und ich erkläre einmal, was ich vorhabe. Vielleicht habt ihr eine Idee, wie ich das eleganter lösen kann.

Ich habe eine Webanwendung (Java), in der ein Anwender Aufgaben für komplexe Berechnungen hinterlegen kann. Nun sollen diese Berechnungen ausgeführt werden. Bisher läuft es so, dass bei jedem Hinterlegen einer Aufgabe die zuständige Java-Methode gestartet wird. Da hier aber mehrere Berechnungen parallel ablaufen können, die wirklich viel Hauptspeicher benötigen, zerlegt es mir häufig den Webserver.

Daher möchte ich das auslagern. D.h. meine Idee war: Die Webanwendung hinterlegt die Aufgabe zur Berechnung in der Datenbank und nun wird ein Daemon getriggert und beginnt mit der Auswertung. Somit entzerre ich auch etwas die ohnehin schon komplexe Webanwendung von der ebenso komplexen Berechnungsanwendung.

D.h. was ich suche ist im Grunde eine Möglichkeit, aus einer Java-Anwendung eine andere Java-Anwendung darüber zu informieren, dass eine neue Aufgabe hinterlegt wurde, die nun berechnet werden soll.

Wie würdet ihr das lösen? Sollte ich die Anwendung über RMI triggern?

Viele Grüße

Mike
 
Hi,

DB Trigger sind mir natürlich ein Begriff, aber mir ist keine Möglichkeit bekannt, wie ich darauf in einer Java Anwendung reagieren kann.

Was für eine RDBMS hast du? Bei Oracle z.B. kannst du aus einem Trigger heraus einen Webservice (z.b: deine Java App) aufrufen. Postgres kann das auch, bei Mysql oder SQL Server kenn ich mich nicht so aus.

UTL_HTTP
 
Zuletzt bearbeitet von einem Moderator:
Hi,

danke, habe ich auch vorhin gesehen. Leider muss ich es möglichst unabhängig von einem bestimmten DBMS gestalten.

Viele Grüße

Mike
 
Dann definier lieber ein interface zwischen den beiden Programmen und lass die miteinander kommunizieren. Übergib dann z.B. eine Referenz auf die entsprechenden Einträge in der Datenbank.

Applikation A -> Datenbank
Applikation A -> Applikation B -> Es liegt was in der Datenbank
Applikation B <- Datenbank
...
..
.
 

Neue Themen


Zurück
Oben