[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Mar 2018
    Beiträge
    4

    Question Mittels PC-Jobs Insert/Update in einer DB erkennen

    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.

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von BladeMaster17 Beitrag anzeigen
    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
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Wie wär's mit 'nem Trigger?

  4. #4
    Registriert seit
    Mar 2018
    Beiträge
    4
    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.

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... wieso Datenbank dazwischen? Wenn ihr von DB2 nach DB2 schreiben wollt, wieso dann ein VB.NET?
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Mar 2018
    Beiträge
    4
    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".

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.644
    Zitat Zitat von BladeMaster17 Beitrag anzeigen
    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
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  8. #8
    Registriert seit
    Mar 2018
    Beiträge
    4
    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 =)

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... 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
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zitat Zitat von BladeMaster17 Beitrag anzeigen
    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

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... von diesen Wrappern von Java Funktionen würde ich dringlich abraten, da freut sich nur der Hardwarelieferant.

    D*B

    Zitat Zitat von dschroeder Beitrag anzeigen
    Alternativ gibt es auch SQL-Funktionen von IBM, mit denen man bestimmte http-Kommunikationen durchführen kann.
    Gruß, Dieter
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zitat Zitat von BenderD Beitrag anzeigen
    ... von diesen Wrappern von Java Funktionen würde ich dringlich abraten, da freut sich nur der Hardwarelieferant.
    D*B
    Genau diese Befürchtung hatten wir auch. Einige Funktionen sind in C geschrieben, da gibt es kein Problem. Allerdings sind einige Funktionen, wie du richtig sagst, in Java geschrieben. Da wird in dem Job, in dem die Funktion verwendet wird, eine VM (einmalig) gestartet. Wir haben bei uns dann mal getestet, wie sich das System verhält, wenn jeder User in jeder Sitzung eine VM startet und den Tag über behält. Das Ergebnis war, dass es eine messbare, aber nicht merkbare Mehrbelastung des Hauptspeichers gab. Wir hatten in Spitzenzeiten gut 1000 VMs laufen. Das einzige Problem ergab sich, als (testweise) zig User gleichzeitig die VMs starteten.

    Aber das Ergebnis ist natürlich nicht auf andere Umgebungen direkt übertragbar. Unsere IBM i hat relativ viel Hauptspeicher (ca 1 TB).
    Aber ich will damit sagen, dass das ganze auf jeden Fall handlebar ist, wenn man die Funktionen nur in wenigen Jobs benötigt, bzw. wenn die Jobs in absehbarer Zeit wieder beendet werden. Dann ist die VM ja auch schnell wieder weg.

Similar Threads

  1. SQL with mit update/delete/insert
    By harkne in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 03-11-17, 13:34
  2. Insert mit SQL Prozedur liefert Resultset mittels Final Table
    By Gutmann in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 06-09-17, 08:55
  3. Prüfung einer E-Mail-Adresse auf Gültigkeit mittels RPG-Programm
    By Asmalsky in forum NEWSboard Programmierung
    Antworten: 36
    Letzter Beitrag: 24-03-17, 12:47
  4. SQL INSERT if not exist then update
    By chrisonline in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 29-07-15, 12:33
  5. Erstellen einer STMF mittels CL-Programm
    By systemer in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 19-02-03, 09:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •