Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Script wird nicht durch Java-Anwendung bei Out of memory Terminiert

  1. #1
    Registrierter Benutzer
    Registriert seit
    May 2014
    Beiträge
    7

    Script wird nicht durch Java-Anwendung bei Out of memory Terminiert

    Hi,

    ich habe ein Shell script das in etwa so aussieht:
    Code:
    WORK_DIR=/opt/app
    LIB_DIR=$WORK_DIR/libs
    
    JAVA_CMD=/usr/java/jdk1.8.0_141/bin/java
    
    ARGS_JAVA="-Xmx4096m -Xms256m -Dlog4j.configuration=/opt/config/log4j.properties"
    
    export CLASSPATH="-classpath \
    $LIB_DIR/commons-cli.jar:\
    $LIB_DIR/commons-lang3-3.6.jar:\
    ...
    $LIB_DIR/slf4j-api.jar:\
    $LIB_DIR/slf4j-log4j12.jar:\
    $LIB_DIR/xml-apis.jar"
    
    cd $WORK_DIR
    export ARGS="$ARGS_JAVA $ARG_DEBUG"
    $JAVA_CMD -version
    $JAVA_CMD $ARGS $CLASSPATH com.team.application $*
    cd -
    Das script wird wie folgt gestartet:
    ./script.sh -parameter1
    oder zuletzt eben auch mit ./script.sh -parameter1 2>&1 | tee -a log_2018-04-10.log

    Prinzipiell läuft die Anwendung auch gut, nur manchmal sind die Daten zu viel und die Java Anwendung erliegt dem "Java heap space out of memory" - das ist auch "OK", nur:
    1) Die Exception wird nicht geloggt
    klar log4J kann sie nicht mehr loggen, aber auch wenn ich mit "2>&1 | tee " umleite bleibt sie nicht im script output log file zu sehen.
    Wie bekomme ich die Exception auch in mein script log file?

    2) Das script läuft nicht weiter.
    Es sieht aus als würde der Java Prozess die weiter Fortführung des Scripts blockieren - Die letzte ausgabe ist die Exception - aber es wird nicht zum Prpt der shell zurück gekehrt.
    Ist das normal? Was kann ich machen damit dies geschieht?

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.046
    Vermutlich fliegt nur in einem Thread der OOM und nicht "komplett".

    den OOM dürftest Du im gc-Log von Java finden - ansonsten, solange der Java-Prozess nicht so tiefgreifend abschmiert, daß er beendet wird musst Du den "Rest" im Javaprogramm selbst lösen - sowohl das Logging als auch das Abfangen des des OOMs und dann ggf. die entsprechende Reaktion darauf.
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    May 2014
    Beiträge
    7
    Zitat Zitat von marce Beitrag anzeigen
    Vermutlich fliegt nur in einem Thread der OOM und nicht "komplett".

    den OOM dürftest Du im gc-Log von Java finden - ansonsten, solange der Java-Prozess nicht so tiefgreifend abschmiert, daß er beendet wird musst Du den "Rest" im Javaprogramm selbst lösen - sowohl das Logging als auch das Abfangen des des OOMs und dann ggf. die entsprechende Reaktion darauf.
    Aber ich dachte Exceptions wie OOM kann man im Programm gar nicht handlen - und was ich bisher gelesen habe ist das auch nicht so die gute Idee - eigentlich will ich ja nur das sie in ruhe stirbt die Anwendung

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.046
    Dann solltest Du den OOM im Java-Programm entsprechend behandeln - sprich im Falle des Falles den Hauptthread "sauber" beenden.
    Ich bin root - ich darf das.

Ähnliche Themen

  1. Java Anwendung lastet Server zu 70-80% aus
    Von asterixer im Forum Anwendungen Allgemein, Software
    Antworten: 3
    Letzter Beitrag: 30.03.09, 15:29
  2. aus Java-Anwendung heraus drucken
    Von Mr.Floppy33 im Forum stationäre Hardware
    Antworten: 2
    Letzter Beitrag: 28.11.07, 13:43
  3. Dhcp wird nicht durch Firewall obwohl Port freigegeben
    Von Henne im Forum Linux als Server
    Antworten: 3
    Letzter Beitrag: 15.10.05, 23:06
  4. USB Memory wird nicht erkannt
    Von Eagle im Forum Mobiles Linux, Notebook, PDA
    Antworten: 5
    Letzter Beitrag: 31.12.04, 16:07
  5. Memory wird nicht erkannt mit GA-7IX
    Von Silvio im Forum stationäre Hardware
    Antworten: 6
    Letzter Beitrag: 21.06.02, 04:55

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •