-
ILE-RPG mit Java erster Aufruf dauert sehr lange
Ich habe ein ILE-RPG-Programm geschrieben in dem eine Javaklasse aufgrufen wird, die auf eine MYSQL-Datenbank zugreift und Daten aus der MYSQL an das RPG Programm übergibt. Das Programm läuft soweit, allerdings dauert der erste Start sehr lange. Ich denke es wird hierbei die VM initialisert/gestartet. Wird das Programm erneut aufgerufen geht es viel schneller. Gibt es eine Möglichkeit die VM beim Anmelden des Benutzers zu starten; etc ? Wie kann man dieses Problem lösen ?
vorab vielen Dank für die Hilfe
-
Hallo,
works as designed und wird katastrophal, wenn das jeder Benutzer in seiner Anwendung macht, dann kannst Du schon mal neue Hardware bestellen.
Das ganze muss als Service implemeniert werden: sprich Java Server Programm wartet an Socket oder DTAQ und RPG kommuniziert asynchron mit diesem Service.
mfg
Dieter Bender
 Zitat von WPF
Ich habe ein ILE-RPG-Programm geschrieben in dem eine Javaklasse aufgrufen wird, die auf eine MYSQL-Datenbank zugreift und Daten aus der MYSQL an das RPG Programm übergibt. Das Programm läuft soweit, allerdings dauert der erste Start sehr lange. Ich denke es wird hierbei die VM initialisert/gestartet. Wird das Programm erneut aufgerufen geht es viel schneller. Gibt es eine Möglichkeit die VM beim Anmelden des Benutzers zu starten; etc ? Wie kann man dieses Problem lösen ?
vorab vielen Dank für die Hilfe
-
Frage an Dieter und Vorschlag :
Wie sieht es eigentlich aus wenn ich das Java-PGM als store procedure implementiere und per embedded SQL von RPG aufrufe. ?
Wie erfolgt hier die Instanzierung der JVM?
Sven
-
Hallo,
erstmal vielen Dank für die Info.
Hast Du vielleicht ein Beispiel (Code/URL) für so eine Anwendung. Rückgabewert max. String 2000 Zeichen.
Übergabe an den Server: IP Port Datenbankname "select * befehl" "liste von feldern aus der select anwendung"
Rückgabewert max. String 2000 Zeichen.
 Zitat von BenderD
Hallo,
works as designed und wird katastrophal, wenn das jeder Benutzer in seiner Anwendung macht, dann kannst Du schon mal neue Hardware bestellen.
Das ganze muss als Service implemeniert werden: sprich Java Server Programm wartet an Socket oder DTAQ und RPG kommuniziert asynchron mit diesem Service.
mfg
Dieter Bender
-
Hallo Sven,
auf den ersten Blick mag das besser aussehen, allerdings mit harten Restriktionen und katastrophalen Folgen für die Anwendung. Bei den neueren Releases (ich meine 5.2, könnte auch 5.1 sein) bleibt die JVM im Job resident und wird nur mit System.exit() gekippt, ob das der Spezifikation entspricht entzieht sich meiner momentanen Kenntnis. Aber sei's drum, jetzt ändert sich für embedded SQL in RPG lokal nix (JVM läuft im selben Job), aber remote (JVM läuft im Server Job) verhält sich das völlig anders.
Hinzu kommt, dass die stored procedure rübergemappt wird auf static Methoden, die ihrerseits wieder nur an static Komponenten drankommen (ist nunmal so in Java) und ein SQL Client nie vorhersagen kann von welchem Server Job er bedient wird, es sei denn er hält die Connection offen. Hält man die Connection, hat man wieder die 1:1 Beziehung für die JVMs und aufrufenden Jobs, gibt man sie frei, um JVMs zu sparen, weiss man nicht, ob das was nutzt und wenn es was nutzt, weiss man nicht in welchem "Zustand" sich die JVM befindet.
Ich bleibe bei meiner Empfehlung:
- keine Java Aufrufe aus RPG
- keine RPG Aufrufe aus Java
- kein Mix von RPG und Java
wenn es um die Verwendung von Komponenten geht (soll es ja sogar in RPG Anwendungen geben), dann muss man das wie einen Serverdienst anlegen (kann man unter Stichworten, wie CORBA oder WebServices nachlesen wie sowas von der Struktur aussieht).
Auf den praktischen Nenner gebracht, bedeutet das genau das, was ich hier konkret vorgeschlagen habe.
mfg
Dieter Bender
 Zitat von Sven Schneider
Frage an Dieter und Vorschlag :
Wie sieht es eigentlich aus wenn ich das Java-PGM als store procedure implementiere und per embedded SQL von RPG aufrufe. ?
Wie erfolgt hier die Instanzierung der JVM?
Sven
-
Hallo,
ich habe da selber momentan nix, meine Schwerpunkte liegen im Java Bereich meist woanders, andere Quellen empfehlen kann ich auch nicht (vielleicht mit Google selber suchen). Diese Problematik wird meist unter den Teppich gekehrt (sieht man auch daran, dass man mit Aufwand was in den RPG Compiler einbaut, was nicht vernünftig funktioniert, früher hat man sowas Spielerei genannt).
Ich denke allerdings darüber nach, ob ich sowas mal als generischen Dienst schreibe, sollte das der Fall sein, wird es wohl auf meiner OpenSource Seite landen - Termine dafür gibt es nicht.
mfg
Dieter Bender
 Zitat von WPF
Hallo,
erstmal vielen Dank für die Info.
Hast Du vielleicht ein Beispiel (Code/URL) für so eine Anwendung. Rückgabewert max. String 2000 Zeichen.
Übergabe an den Server: IP Port Datenbankname "select * befehl" "liste von feldern aus der select anwendung"
Rückgabewert max. String 2000 Zeichen.
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By codierknecht in forum NEWSboard Java
Antworten: 7
Letzter Beitrag: 23-03-05, 08:31
-
By PGMR in forum NEWSboard Java
Antworten: 10
Letzter Beitrag: 10-02-05, 10:33
-
By PGMR in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 02-02-05, 13:10
-
By mk in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 09-09-04, 08:22
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks