[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte

Thema: JVM beenden

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    1.978

    JVM beenden

    Neues Problem
    Eine Fremdsoftware macht u.a. etwas mit Java.
    (ILE RPG, SQL und Java)

    Der Ablauf
    Ein RPG Pgm ruft u.a. das fremde RPGLE Pgm, das mit SQL und java arbeitet. Das PRG-pgm ruft auch andere RPGLE Pgmme.
    Nach dem Aufruf geschieht im Menü ein RCLACTGRP *eligible.
    Wird nun das Pgm erneut gerufen funktioniert Java nicht mehr
    Lt Hersteller wird mit dem RCLACTGRP java so komisch abgeschossen, das es nicht mehr aufrufbar ist.
    Kann das sein ?
    Gibt es nicht ein call 'beende-JVM-ordnugsgemäß' ?
    das ich vor dem RCLACTGRP absetzen kann.

    Hilfe
    Gruß
    Robi (der von Java keine Ahnung hat)

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... die Java Unterstützung des RPG Compilers ist Murks (in Worten Murks, buchstabiert "M" "U" "R" "K" "S"!!!).
    Der nächstliegende Workaround, der hier empfohlen wird, ist die JVM per JNI Aufruf (C Funktion) zu killen, was natürlich heißt, dass im nächsten Step wieder neu geladen wird, mit immensem Overhead.
    Der tatsächliche Fehler liegt hier (wieder einmal) im Design. Die JVM gehört asynchron gestartet und asynchron bedient. (gibt es Open Source AppServer4RPG).

    D*B

    Zitat Zitat von Robi Beitrag anzeigen
    Neues Problem
    Eine Fremdsoftware macht u.a. etwas mit Java.
    (ILE RPG, SQL und Java)

    Der Ablauf
    Ein RPG Pgm ruft u.a. das fremde RPGLE Pgm, das mit SQL und java arbeitet. Das PRG-pgm ruft auch andere RPGLE Pgmme.
    Nach dem Aufruf geschieht im Menü ein RCLACTGRP *eligible.
    Wird nun das Pgm erneut gerufen funktioniert Java nicht mehr
    Lt Hersteller wird mit dem RCLACTGRP java so komisch abgeschossen, das es nicht mehr aufrufbar ist.
    Kann das sein ?
    Gibt es nicht ein call 'beende-JVM-ordnugsgemäß' ?
    das ich vor dem RCLACTGRP absetzen kann.

    Hilfe
    Gruß
    Robi (der von Java keine Ahnung hat)
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Der nächstliegende Workaround, der hier empfohlen wird, ist die JVM per JNI Aufruf (C Funktion) zu killen
    In früheren Releases funktionierte das mal. In neueren (ich glaube seit V5R4) kann man die JVM nicht mehr manuell per JNI beenden. Nur bei Jobende wird auch die JVM beendet.

    Gruß,
    KM

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... das sieht die JDK Doku der AS/400 anders (würde auch dem Java Standard widersprechen und die Kaffeetasse kosten), ob die RPG Programme damit noch zurechtgebogen werden können, weiß ich nicht sicher, ich sehe aber keinen Grund warumdas nicht mehr gehen sollte.

    D*B

    Zitat Zitat von KM Beitrag anzeigen
    In früheren Releases funktionierte das mal. In neueren (ich glaube seit V5R4) kann man die JVM nicht mehr manuell per JNI beenden. Nur bei Jobende wird auch die JVM beendet.

    Gruß,
    KM
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.978
    Na toll.

    Das das ein Designfehler ist denke ich auch.
    solange ich das nicht ändern darf ... (den RPG Job im Bach über eine dataq füttern)

    Du hast nicht zufällig ein Beispiel auf deiner Seite für das
    ordentliche beenden der Jvm ?

    Gruß
    Robi

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... das macht man dann gleich im Java und wird damit das grauseliche embedded Java im RPG los.
    Als Beispiel (mgBdA) ungeprüft:
    midrange.com -- JAVA400-L -- Re: Calling java from RPG - how to increase performance

    D*B,
    der von all diesem Quatsch ("Q" "A" "T" "S" "C" "H") abrät!!!!!

    Zitat Zitat von Robi Beitrag anzeigen
    Na toll.

    Das das ein Designfehler ist denke ich auch.
    solange ich das nicht ändern darf ... (den RPG Job im Bach über eine dataq füttern)

    Du hast nicht zufällig ein Beispiel auf deiner Seite für das
    ordentliche beenden der Jvm ?

    Gruß
    Robi
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Dann schau mal hier nach.

    RPG-Java Integration: Stopping the JVM - System iNetwork Forums

    Ein sauberes Beenden der JVM ist also innerhalb eines Jobs nicht möglich. Ich hatte das mal nach einem Releasewechsel gemerkt, als der destroyJVM auf einmal nicht mehr funktionierte.

    Gruß,
    KM

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    1.978

    Ich verstehe das aber ...

    die software ist nicht von uns. Der Hersteller hat vorgeschlagen zukünftig kein RCLACTGRP zu machen
    Ich bräuchte also einen Job der eine nicht von ihm gestartete JVM beendet.
    Ich weiß zu wenig von Java um zu verstehen was da intern abgeht. (in meiner denke ist ein Job, der 'gekillt' wurde weg und kann wieder aufgerufen werden)
    Gruß
    Robi

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    1.978
    @KM
    oh,
    na das werd ich wohl mal lesen müssen...
    Danke
    Robi

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... in diesem Fred geht es um ein weiter existierendes RPG Programm und das beenden und starten einer JVM.
    Ich gehe davon aus, dass wir hier das umgekehrte Problem haben: ein RPG Programm wird entladen mit RCLACTGRP und kriegt die Verbindung zur JVM nicht mehr, oder will sie neu starten, was ihr nicht gelingt ohne sie zu beenden.

    D*B,
    der nochmal definitiv davon abrät diesen Java in RPG Krampf zu verwenden - selbst mit obigen Workarounds (wenn sie denn funzen), stolpert man nur von einem Loch ins nächste. Man denke nur an mehrere RPG Programme mit Java Aufrufen in unterschiedlichen Activationgroups mit RCLACTGRP...
    und das Verhalten des JNI Krimskrams, den der RPG Compiler da generiert ist in ganz wesentlichen Punkten undokumentiert, sprich: die Wackelhaufen können nach Releasewechsel umfallen!

    Zitat Zitat von KM Beitrag anzeigen
    Dann schau mal hier nach.

    RPG-Java Integration: Stopping the JVM - System iNetwork Forums

    Ein sauberes Beenden der JVM ist also innerhalb eines Jobs nicht möglich. Ich hatte das mal nach einem Releasewechsel gemerkt, als der destroyJVM auf einmal nicht mehr funktionierte.

    Gruß,
    KM
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    da würde ich doch ein RCLSFWSUP vorschlagen.

    D*B

    Zitat Zitat von Robi Beitrag anzeigen
    die software ist nicht von uns. Der Hersteller hat vorgeschlagen zukünftig kein RCLACTGRP zu machen
    Ich bräuchte also einen Job der eine nicht von ihm gestartete JVM beendet.
    Ich weiß zu wenig von Java um zu verstehen was da intern abgeht. (in meiner denke ist ein Job, der 'gekillt' wurde weg und kann wieder aufgerufen werden)
    Gruß
    Robi
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Jun 2001
    Beiträge
    1.978
    Ich gehe davon aus, dass wir hier das umgekehrte Problem haben: ein RPG Programm wird entladen mit RCLACTGRP und kriegt die Verbindung zur JVM nicht mehr, oder will sie neu starten, was ihr nicht gelingt ohne sie zu beenden
    Ja, das ist so.
    und wenn du 1000 mal recht hast, das das Murks Mist und ich weiß nicht was ist ...
    kann ich die JVM nicht 'ordentlich' beenden ?
    Robi

Similar Threads

  1. SBS läßt sich nicht beenden
    By Marimari1009 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 10-01-07, 11:41
  2. Starten und beenden der AS/400
    By Klabautermann in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 29-09-06, 15:39
  3. JVM kann nicht erstellt werden
    By KM in forum NEWSboard Java
    Antworten: 1
    Letzter Beitrag: 21-07-06, 11:13
  4. Beenden eines Bildschirmprogrammes (RPG)
    By gaby68 in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 14-06-06, 16:27
  5. Job in SBS beenden
    By hs in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 12-12-01, 09:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •