[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Ich hatte schon befürchtet, dass ich hier eine Grundsatzdiskussion auslöse. Das war aber nicht meine Absicht.

    Ich denke, ich bin da etwas missverstanden worden. Ob wir fremde Software einsetzen oder nicht, hängt natürlich zunächst davon ab, ob wir die Lösung mit vertretbarem Aufwand überhaupt selbst entwickeln könnten. Beim Office Paket ist das augenscheinlich nicht der Fall.

    Wenn wir dann bei einem Probem, das wir selber lösen könnten, vor der Entscheidung stehen, ob wir Fremdsoftware einsetzen oder ob wir es selber bauen, stellen wir uns folgende Fragen:
    - Wieviel Aufwand erspart uns die fremde Lösung?
    - Wie abhängig machen wir uns von der fremden Software?
    - Wie kritisch ist unser Problem, also: wie schnell benötigen wir einen workaround, falls die fremde Software mal nicht mehr läuft und wie schnell könnten dann wir einen workaround selber schaffen?

    Was wir im konkreten Fall für den Redis Zugriff benötigen, ist ja nur ein sehr kleines Tool. Aber es wird an einer kritischen Stelle eingesetzt. Deshalb fände ich es besser, dieses Tool vollständig unter Kontrolle zu haben. Und deshalb fände ich ein Code-Snippet oder etwas ähnliches besser. Wenn es das nicht gibt, muss ich neu überlegen.

    Zum Thema OpenSource: Ich habe die Befürchtung, dass, wenn eine Software komplex genug ist, einem OpenSource nicht zwingend weiterhilft. Man muss ja im Zweifel auch genug Zeit und Ressourcen haben, um den OpenSource Code zu lesen, zu verstehen und ggf. zu korrigieren. (Das ist allgemein gemeint. Ich habe überhaupt keine Ahnung, wie komplex ArdGate ist).

  2. #2
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Übrigens noch eine Anmerkung zum IBM Support. Ich hatte schon oft mit dem Support zu tun. Die Webseiten von IBM sind immer noch furchtbar. Aber wenn man es geschafft hat, ein Ticket zu eröffnen (geht ja auch telefonisch), bekommt man meiner Erfahrung nach hervorragenden Support. Schnell und kompetent. Und IBM bleibt solange am Ball, bis das Problem gelöst ist. Das klappt natürlich alles am besten, wenn man sich komplett in der IBM Schiene befindet. Bei einem Problem im RDi bezieht der Support bei Bedarf z.B. automatisch Leute von der Datenbankentwicklung mit ein.

    Ich muss allerdings zugeben, dass ich nicht weiß, wieviel der Wartungsvertrag kostet.

  3. #3
    Registriert seit
    Apr 2005
    Beiträge
    385
    Warum kapselst du nicht Dieter's Lösung in ein eigens PGM und ließt (rufst) das PGM als SPECIAL Datei auf. Dann sollte doch alles so sein wie gewünscht...

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Danke für deine Anwort.
    Aber wie ich schon sagte, ist das Installieren einer größeren Software nur eine Option, wenn wir keine einfachere Möglichkeit finden. Dieter Benders Lösung läuft ja letztendlich auch darauf hinaus, dass wir den Redis mittels Java ansprechen. Das könnten wir auch machen, indem wir eine Java-Klasse in RPGLE embedden. Das würde für uns weniger "fremde" Software bedeuten. Ist auch nicht schön, da in dem RPG Job dann immer eine VM hochgezogen wird. Aber das wäre in unserem Fall nicht tragisch, da der Job sowieso als Batch-Job den ganzen Tag über laufen wird.

    Aber noch lieber wäre mir eben eine Lösung, die nativ mit RPG auskommt oder auch mit SQL. Aber das scheint es ja nicht zu geben bzw. das wohl noch niemand aus dem Forum programmiert.

    Dieter

  5. #5
    Registriert seit
    Aug 2014
    Beiträge
    181
    Hallo Dieter,

    ich hatte mal die Aufgabe die Cloud Datenbank "Cloudant" der IBM anzuprogrammieren. Hier werden für alle Datenbankfunktionen Webservices zur Verfügung gestellt. Ich denke, dass es für Redis ähnlich sein sollte.

    Diese Funktionen teste ich mit Google Postman und implementiere sie dann mit den SQL-Funktionen HTTPGETCLOB oder HTTPPOSTCLOB. Das funktioniert sehr gut und ist sehr performant.

    Rainer

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von Rainer Ross Beitrag anzeigen
    Hallo Dieter,

    ich hatte mal die Aufgabe die Cloud Datenbank "Cloudant" der IBM anzuprogrammieren. Hier werden für alle Datenbankfunktionen Webservices zur Verfügung gestellt. Ich denke, dass es für Redis ähnlich sein sollte.

    Diese Funktionen teste ich mit Google Postman und implementiere sie dann mit den SQL-Funktionen HTTPGETCLOB oder HTTPPOSTCLOB. Das funktioniert sehr gut und ist sehr performant.

    Rainer
    ... das mit der Performance wage ich zu bezweifeln (oder ich habe eine andere Vorstellung von sehr performant). Die Implementierung ist Java und fährt eine JVM im aufrufenden Job hoch. Funktioniert sehr gut: nur solange, wie man in dem Job nicht selber was mit Java machen will. Das sind doch mit heißer Nadel gestrickte Krücken, von denen ich abraten würde.

    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/

  7. #7
    Registriert seit
    Nov 2020
    Beiträge
    418
    Bei zeitkritischen Prozessen sollte man hier den Weg über vorgestartete Jobs die via Data Queue angesteuert werden nachdenken.
    Dann fällt das Problem mit der gestarteten JVM weg, da dies dann nur 1 mal für den vorgestarteten Job gemacht wird.
    Funktioniert prima.
    Auch synchron wenn gewünscht mit Rückantwort.

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... redis ist eine Art cache von Parametern, eingesetzt als schnellere Alternative zur Datenbank; da würde ich die Anzahl der Layer klein halten, da wäre mir Webservice via Java und SQL schon fragwürdig.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Ich habe auch gelesen, dass Redis als Cache Unterstützung verwendet werden kann. Bei uns haben wir aber einen anderen Einsatzzweck: Wir nutzen Redis als Message System für Events. Wenn z.B. in einer (nicht auf der i laufenden) Java Anwendung ein neuer Datensatz angelegt wird, sendet die Java Anwendung per Redis ein entsprechendes Ereignis. Jede andere Anwendung, die sich auf genau dieses Ereignis abonniert hat, weiß dann, das es neue Daten gibt und dass diese (per Webservice) vom anderen System geholt werden können.
    Das heißt, Geschwindigkeit ist gar nicht so entscheidend in unserem Fall.

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von dschroeder Beitrag anzeigen
    Ich habe auch gelesen, dass Redis als Cache Unterstützung verwendet werden kann. Bei uns haben wir aber einen anderen Einsatzzweck: Wir nutzen Redis als Message System für Events. Wenn z.B. in einer (nicht auf der i laufenden) Java Anwendung ein neuer Datensatz angelegt wird, sendet die Java Anwendung per Redis ein entsprechendes Ereignis. Jede andere Anwendung, die sich auf genau dieses Ereignis abonniert hat, weiß dann, das es neue Daten gibt und dass diese (per Webservice) vom anderen System geholt werden können.
    Das heißt, Geschwindigkeit ist gar nicht so entscheidend in unserem Fall.
    ... seltsames Design, wer lässt sich denn sowas einfallen, wo es doch messanger systeme genug gibt, open source und auch von IBM, wenn man mehr Geld für weniger Support bezahlen will. Wie auch immer, gibt es immer Lösungen, die krumme Wege wieder zum Ziel leiten.
    Vielleicht findest Du ja hier was:
    https://stackoverflow.com/questions/...edis-datastore
    Weiterreichen kann man das event dann über MQ-series, einen anderen messanger oder in eine DB2 Tabelle auf der as400 schreiben, die dann per Trigger synchron reagiert.

    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/

  11. #11
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Vielen Dank. Werde ich mir mal ansehen.

  12. #12
    Registriert seit
    Aug 2014
    Beiträge
    181
    Zitat Zitat von dschroeder Beitrag anzeigen
    Ich habe auch gelesen, dass Redis als Cache Unterstützung verwendet werden kann. Bei uns haben wir aber einen anderen Einsatzzweck: Wir nutzen Redis als Message System für Events. Wenn z.B. in einer (nicht auf der i laufenden) Java Anwendung ein neuer Datensatz angelegt wird, sendet die Java Anwendung per Redis ein entsprechendes Ereignis. Jede andere Anwendung, die sich auf genau dieses Ereignis abonniert hat, weiß dann, das es neue Daten gibt und dass diese (per Webservice) vom anderen System geholt werden können.
    Das heißt, Geschwindigkeit ist gar nicht so entscheidend in unserem Fall.
    In diesem Fall sieht es so aus, dass es einen fertigen Node.js Client gibt https://www.npmjs.com/package/redis der das Event abonniert. Diese Events schreibt man dann in eine DTAQ oder in eine DB2 Tabelle mit Trigger für die weitere Verarbeitung. Auf https://github.com/RainerRoss/Send-S...taFromQueue.js hab ich ein Beispiel für ein Programm das Daten aus einer DTAQ liest, um zu zeigen, dass es nicht sehr kompliziert ist. Wir können auch über das Thema telefonieren.

Similar Threads

  1. Zugriff auf IFS getrennt
    By RPG_KL in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 30-07-20, 19:04
  2. Qdls zugriff unter Win7 zugriff verweigert
    By berg01796 in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 15-11-16, 11:55
  3. AS400-Zugriff
    By Der Gute in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 01-07-02, 11:11
  4. ODBC Zugriff auf DB2 mit VBA
    By Bärnd in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-05-02, 15:58
  5. FTP - Zugriff
    By Andreas Herzfeldt in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 02-07-01, 06:51

Berechtigungen

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