View Full Version : Mittels PC-Jobs Insert/Update in einer DB erkennen
BladeMaster17
08-03-18, 14:27
Hallo zusammen,
wir sind aktuell dabei ein neues Programm zu entwickeln.
Dieses Programm soll Daten aus einer DB2 ermitteln und entsprechend an einen weiteren Prozess schicken.
Die erste Lösung ist, das wir in einem einstellbarten Abstand die DB abfragen, ob es neue Daten gibt.
Das bedeutet aber, das wir mitunter Verzögerungen haben und zu viel System-Ressourcen verwenden (Ständiges pollen).
Gibt es vom System etwas, das es uns ermöglicht auf ein Event der DB zu warten und aufgrund dessen eine Aktion auszuführen?
Das Programm, womit wir die Daten ermitteln, soll/wird in VB.NET entwickelt.
Schon jetzt vielen Dank für die Ansätze.
Hallo zusammen,
wir sind aktuell dabei ein neues Programm zu entwickeln.
Dieses Programm soll Daten aus einer DB2 ermitteln und entsprechend an einen weiteren Prozess schicken.
Die erste Lösung ist, das wir in einem einstellbarten Abstand die DB abfragen, ob es neue Daten gibt.
Das bedeutet aber, das wir mitunter Verzögerungen haben und zu viel System-Ressourcen verwenden (Ständiges pollen).
Gibt es vom System etwas, das es uns ermöglicht auf ein Event der DB zu warten und aufgrund dessen eine Aktion auszuführen?
Das Programm, womit wir die Daten ermitteln, soll/wird in VB.NET entwickelt.
Schon jetzt vielen Dank für die Ansätze.
... warum nicht einfach per Trigger von der AS/400 auf die remote Datenbank schreiben? ArdGate machts möglich.
D*B
Wie wär's mit 'nem Trigger?
BladeMaster17
08-03-18, 14:40
Hallo BenderD,
danke für die Rückmeldung.
Wir würden gerne nativ die DB2 verwenden, ohne das eine weitere DB dazwischen ist.
Gedacht haben wir uns, das wir durch ein Event (Welches auch immer) eine Meldung bekommen, dass sich was getan hat.
Daraufhin dann soll unser Programm loslaufen und die Daten per normalen SQL-Select abrufen.
... wieso Datenbank dazwischen? Wenn ihr von DB2 nach DB2 schreiben wollt, wieso dann ein VB.NET?
BladeMaster17
08-03-18, 15:05
Ok vielleicht hab ich mich doof ausgedrückt.
Wir wollen aus der DB Daten lesen und diesen dann an weitere Prozesse schicken.
Z.B. generieren von Druckdaten, Erstellung einer Excelliste, Email verschicken, etc.
Das meinte ich mit weiteren Prozessen.
Die Daten werden nach dem Lesen nicht mehr in einer Datenbank "geschupst".
holgerscherer
08-03-18, 19:50
Ok vielleicht hab ich mich doof ausgedrückt.
Wir wollen aus der DB Daten lesen und diesen dann an weitere Prozesse schicken.
Z.B. generieren von Druckdaten, Erstellung einer Excelliste, Email verschicken, etc.
Das meinte ich mit weiteren Prozessen.
Die Daten werden nach dem Lesen nicht mehr in einer Datenbank "geschupst".
also doch: Trigger.
-h
BladeMaster17
08-03-18, 20:59
Ok?
Dann Trigger.
Aber wie verstehe ich das, dass der Trigger das PC-Programm aktivieren/ausführen soll?
Das erschließt sich mir nicht?
Danke für eure Antworten =)
... die ganze Palette, mit der Du einen remote procedure call ausführen kannst. RUNRMTCMD, ftp mit rcmd, webservice, eigener dämon, der auf einer DataQ oder Socket wartet, um nur ein paar zu nennen.
D*B
dschroeder
09-03-18, 10:31
Ok?
Dann Trigger.
Aber wie verstehe ich das, dass der Trigger das PC-Programm aktivieren/ausführen soll?
Das erschließt sich mir nicht?
Dieter Bender hat ja bereits viele grundsätzliche Möglichkeiten aufgeführt. Bei uns läuft das konkret so, dass die PC-Kollegen einen sogenannten Redis-Server aufgesetzt haben (Ist open source, einfach mal googeln). Den steuern wir mit http von RPG aus an. Für Http gibt es eine brauchbare Bibliothek von Scott Klement. Alternativ gibt es auch SQL-Funktionen von IBM, mit denen man bestimmte http-Kommunikationen durchführen kann. Siehe Bibliothek QSYS2. (Die Verfügbarkeit der Funktionen hängt allerdings von eurem Release und TR ab.)
Gruß, Dieter