PDA

View Full Version : JAVA Runtime



Muchi
13-06-08, 15:53
Hallo *All,

gibt es eine Möglichkeit die Java Runtime auf der I5 ohne Unterbrechung laufen zu lassen. Meiner Erfahrung nach ist die 32 bit Runtime recht fix, jedoch braucht sie jedesmal 10 Sekunden pro Programmstart.

THX

Michael

Fuerchau
13-06-08, 17:35
Da gabs schon mehrere Hinweise.
Am besten startet man ein BatchJava (z.B. Prestart-Job), dass dann per Kommunikation (z.B. DTAQ) auf Aufträge wartet, und das Ergebnis zurücksendet.

Eine Keyed-DTAQ eignet sich dafür ganz gut, da die Schlüssel schön getrennt werden können.
Das Javaprogramm warten auf einen bestimmten Key (z.B. "TUWAS"), in den Daten wird z.B. die Job-Nr. als Antwortkey mitgegeben.
Das Empfängerprogramm kann dann gezielt auf diesen Key lesen und warten (ggf. mit Timeout).

Das hat den Vorteil, dass beliebig viele Jobs mit dem Auftragnehmer kommunizieren können oder der Auftragnehmer mittels mehrerer Threads parallele Aufträge ausführen kann.

Die DTAQ wird dabei sehr schön nach FIFO synchronisiert.

Du musst nur noch "veraltete" Schlüssel erkennen und ggf. bereinigen (z.B. QCLRDTAQ bei IPL).

BenderD
13-06-08, 18:50
Hallo,

das ist im Grunde das Problem auf allen Plattformen und genau deshalb gibt es Applikationserver (Tomcat, JBoss, Geronimo und Co.), die im Grunde nichts anderes sind als eine vorgestartete JVM mit eingebautem Multithreading (in der man auch eigene Java Klassen vorstartet, damit sie schneller sind). Das Problem existiert dann nur für RPG, weil diese Umgebung alle gängigen Standards (EJB, Servlet/JSP, WebServices, Corba) nicht unterstützt. Man muss sich also der Mühe unterziehen das irgendwie zu überbrücken, man könnte da auch auf WebServices aufsetzen, aber da krankt es an tauglicher XML UNterstützung (RPG wimmelt von Halbheiten).
Ein relativ schnell zum Ziel führender Weg geht über DataQs zur Kommunikation zwischen RPG/CL und einem eigenen Java Serverdienst. Zu letzterem plane ich gemeinsam mit Common im September einen zweitägiges Training und werde dann auch einen Beta+ Stand einer Open Source Implementierung für solch einen Serverdienst publizieren.

mfg

Dieter Bender


Hallo *All,

gibt es eine Möglichkeit die Java Runtime auf der I5 ohne Unterbrechung laufen zu lassen. Meiner Erfahrung nach ist die 32 bit Runtime recht fix, jedoch braucht sie jedesmal 10 Sekunden pro Programmstart.

THX

Michael

Muchi
14-06-08, 13:47
Solche eine Lösung habe ich mir auch schon vorgestellt. Ich werde mit der Programmierung beginnen. Wenn ich mit den Programmen fertig bin, werde ich über meine Erfahrungen berichten bzw. mein Ergebnis präsentieren...

Muchi
20-07-08, 08:44
Hallo,

ich habe ein Programm geschrieben, das die Dataqueue abarbeitet und in eine 2. Dataqueue zurückschreibt. Dabei ist mir aufgefallen, dass das Programm wesentlich schneller auf einem Windows Server mit weniger Ressourcen läuft.

Gruss,
Michael

BenderD
20-07-08, 09:22
was genau meinst du mit Ressourcen?
- Hauptspeicher ?
- Taktfrequenz des Prozessors ?
- Kosten der Maschine ?
und was treiben die Hobel sonst noch so nebenher?

D*B


Hallo,

ich habe ein Programm geschrieben, das die Dataqueue abarbeitet und in eine 2. Dataqueue zurückschreibt. Dabei ist mir aufgefallen, dass das Programm wesentlich schneller auf einem Windows Server mit weniger Ressourcen läuft.

Gruss,
Michael

Muchi
20-07-08, 12:54
Der Windows Rechner ist eine VMWare Partition mit einem 1GB Ram und einem Viertel CPU. Ausserdem ist der Rechner stark ausgelastet.
Mir ist aufgefallen, dass die I5 (selbst mit meinem Programm) ein Java Start Programm ausführt. Dadurch geht natürlich Zeit verloren... Wahrscheinlich werde ich meine Java Programme von einem Windows Rechner ausführen lassen, der auf die I5 zugreift.

Gruss,

Michael