View Full Version : JAVA Runtime
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
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).
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
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...
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
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
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