PDA

View Full Version : Java auf der iSeries



KM
29-01-04, 08:57
Hallo zusammen,

ich komme eigentlich aus der RPG-Schiene der AS/400. Nun ist es jedoch so, dass wir ein Projekt haben, bei dem wir RPG-Programme und Java-Klassen kombinieren müssen/sollten. Das heißt unsere Hauptanwendung läuft in RPG und daraus müssen wir diverse Java-Klassen aufrufen. Das sollte eigentlich kein Problem sein mit RPGIV. Diese Java-Klassen müssen allerdings teilweise noch angepasst werden. Kann jemand von Euch eine Freeware-IDE für Java empfehlen ? Bin nämlich noch Anfänger und habe mal gehört, dass z.B. NetBeans ganz gut sein soll. Ich habe manche Befehle schon über die QShell probiert, allerdings hatte ich da so manche Probleme.

Noch eine Frage: Wenn ich von RPG eine Java-Klasse aufrufe, wird im Hintergrund beim ersten Aufruf die JVM auf der AS/400 gestartet. Diese bleibt eine Zeit lang aktiv und beendet sich irgendwann wieder. Kann mir jemand sagen, wie lange sie gestartet bleibt bzw. wie ich es hinbekomme, dass sie immer aktiv bleibt ?

Vielen Dank,
KM

Fuerchau
29-01-04, 09:12
Um die JVM aktiv zu halten, einfach ein kleines RPG-Programm als PJ-Job in ein Subsystem starten und eine Java-Klasse initialisieren.

Solange ein Programm mit Java-Aufruf aktiv ist, bleibt auch die JVM aktiv. Wenn die letzte Jave-Klasse inaktiviert ist beendet sich halt auch Java.

Das Batchprogramm sollte aber auch auf kontrolliertes Ende des Job's abfragen.

BenderD
29-01-04, 10:41
Hallo KM

als Freeware IDE am schlankesten und am schnellsten zu erlernen sind JCreator und Gel.

Die Lebensdauer der JVM unterscheidet sich je nach Release, bei V5R2 bleibt sie ewig (solange man nicht mit System.exit() aus Java platt macht) unter V5R1 ist das etwas komplizierter, um mich da vorsichtig auszudrücken.

Von dem geplanten Mix von Java und RPG kann ich nur ausdrücklich warnen!

Aus RPG Java aufzurufen ist nicht gut skalierbar ,wg. des Starts einer JVM für jeden Job, der das tut und der Kontextwechsel zwischen RPG und Java ist aufwändig und langsam. Wenn es denn sein muss, rate ich dringend zu einem Java Serverdienst, der über Sockets (oder meinethalben auch DTAQs, wenn es denn sein muss) aus RPG asynchron angetickt wird.

Aus Java RPG aufzurufen ist wg. der Threading Problematik instabil und Fehler trächtig. Wenn es denn unbedingt sein soll, dann sind hier stored Procedures als Zwischenschicht entschieden vorzuziehen.

Hin und Her und Kreuz und quer, führt sicher in die Katastrophe.

Der Mix von unterschiedlichen Programmiersprachen in einer Anwendung ist immer problematisch und bis auf wenige Ausnahmen (embedded SQL) kein Zeichen von gutem Stil. Mittlerweile lässt fast jeder die Finger von der Kombination von COBOL und RPG, selbst die Kombination RPG mit CL ist auf dem Rückzug; aber ausgerechnet mmit Java und RPG, die nun überhaupt nicht zusammen passen, erwartet manch einer, dass das toll wird.

mfg

Dieter Bender

KM
29-01-04, 10:55
Vielen Dank für die Infos. Hat mir schon mal ein Stückchen geholfen.

Gruß,
KM