Zitat Zitat von dschroeder Beitrag anzeigen
Hallo liebes Forum,
ich bin auf das Thema "CLI server mode" gestoßen (worden). Das ist für mich ganz neu, denke ich jedenfalls.

Habe ich folgende Dinge richtig verstanden?
  1. Wenn ich embedded SQL im RPG verwende, wird das SQL im interaktiven Job des SQL-Programms ausgeführt?
  2. Wenn ich den CLI server mode aktiviere, wird das SQL in separaten Jobs ausgeführt und liefert das Result an das anfordernde RPG-Programm. Für mich als Programmierer ist das aber völlig transparenent. Es geht dabei nur um das Verfahren im Hintergrund. Ist das so?
  3. Das CLI Verfahren ist performanter bzw. ressourcenschonender als das Standardverfahren?
  4. Wir möchten SQL Funktionen aus SYSTOOLS einsetzen, die eine JVM benötigen. Wenn wir nicht in jedem interaktiven Job eine JVM haben möchten, ist das CLI Verfahren eine Lösung?


Sind die obigen Aussagen bzw Fragen richtig? Sind wir da überhaupt auf dem richtigen Weg? Oder lohnt sich die Beschäftigung mit dem Thema gar nicht?

Vielen Dank im Voraus.

Dieter
@1: richtig
@2: fast richtig, Probleme gibt es im Mix Server/nicht Server
@3: fast richtig, der zusätzliche Job kostet Ressourcen, die allerdings nicht zur interaktiven Workload zähle. Kann bei bestimmtem Lizenzmodellen Vorteile haben, bei anderen aber auch Nachteile.
@4: ganz falsch. Das kann sogar zum doppeltem Ressourcenverbrauch führen, da man jetzt zwei Jobs hat, in denen man eine JVM starten kann. Zudem lässt sich die JVM in den Serverjobs nicht kontrollieren, da man nicht weiß, wer die zuerst gestartet hatte.

Ich würde die Finger von solchen SQL Funktionen lassen, die gibt es nur, um den Hardware Umsatz anzukurbeln. Das skaliert selbst dann nicht, wenn man das versucht asynchron zu entkoppeln, da sie nur multithreaded ausgeführt werden können, wenn man jeweils eine separate Connection verwendet und dann ist man wieder am Asugangspunkt.

Was machen die denn so wertvolles, dass man über diesen Murks überhaupt nachdenken muss?

D*B

@Baldur: wenn man die im Java verwendet, laufen die wieder in den Serverjob der Connection und starten da noch eine JVM.