Services - Programme laden (Speicherproblem?)

Status
Nicht offen für weitere Antworten.
J

JayJay

Gast
Hi Leute,

und zwar hab ich ein "Service-Loader" geschrieben, der Services (ein service enthält immer x programme) nach bedarf ausführt.

Zb. Service "Web-Server" startet den Apache und MySQL aus. Soweit zur Struktur.


Mein Problem:
------------------
Irgendwann stützt mein Programm einfach ab (d.h. wenn es über den Service-Loader) gestartet wurde. Wenn es selbstständig läuft, dann läuft das soweit einwandfrei.


Vielleicht könnte es ein Speicher-problem sein? Oder an was könnte es evt. sonst liegen?

Wie sind eig. die Programm-abgängigkeiten? Der Service-Loader hat max. 80 mb speicher zum laden. Wenn nun der Service-Loader 3 Programme läd, die jeweils 50 mb benötigen. Gibt es damit ein Problem?


Würde mich über ein paar Ideen freien.

gruß jayjay
 

JPKI

Top Contributor
Wie lädst du denn die Programme? Wenn alles in einer einzigen JVM ausgeführt wird, die nur 50 MB Speicher zu Verfügung stehen hat, ist es doch klar, dass es dann Probleme gibt.
 
J

JayJay

Gast
So habhie rmal ein paar angaben:

Per "System.out.println( "MAX-Memory: "+Runtime.getRuntime().maxMemory() );" lass ich mir den Max. Speicher ausgeben.

=> 266403840


Kleine Frage, wenn mein "Service-Loader" Programm das zeitliche segnet, d.h. abstürzt sind dann auch die Unterprogramme damit betroffen?

Die Programme starte ich darüber:

Code:
public class ServiceAppThread extends Thread{
....

	/**
	 * application console
	 * execute on start
	 */
	public void run(){
    	isRunning = true;
		int exit_value = runServiceApp();
		
		process = null;
		
		// do other things 
    	isRunning = false;
    	//outputController = null;
	}

	/**
	 *  run process
	 */
	private int runServiceApp(){
        try{
    		// delay for application?
    		if( delayTime > 0 ){
    			OutputList.add( "delay activated "+delayTime );
    			try{ Thread.sleep( delayTime); } catch( Exception e ){e.printStackTrace();}
    		}
    		
        	
        	OutputList.add("service-app started");
        	String cmd	= app_file;
        	
        	// start process
        	this.process = Runtime.getRuntime().exec( cmd  );
        	
        	// handle process output-data
	        BufferedReader input = new BufferedReader(new InputStreamReader(this.process.getInputStream()));

	        String line;
        	while ((line = input.readLine()) != null) {
        		//System.out.println("Out:"+line);
        		onLineOutput( line );
        	}//while

        	this.process.waitFor(); // wait for app-self termination
        	//this.proces

        	// clean-up
        	input.close();
        	this.process.destroy();
        	
        	return this.process.exitValue();
        	//return 1;
        	
	    }
        catch( Exception e ){
	    	e.printStackTrace();	// print error stack
	    	OutputList.add("ERROR: "+e.getLocalizedMessage() );
	    }
	    return -1;
	}
}
 
J

JayJay

Gast
Ein paar Dinge die mir noch aufgefallen sind:

Bei meinem Service, werden 3 programme gestartet, bei dem nur eines abstürtzt. Es hat dabei immer mehr als 70 mb speicher (laut taskmanager).
 

JPKI

Top Contributor
Hm... Du startest sie aber über Runtime.getRuntime(), d.h. sie werden in einem eigenen Prozess gestartet und nicht in der selben JVM... Kann es sein, dass du deinem Computer einfach zu viel zumutest :wink: ? Falls nicht... du liest ja die Programmeingabeströme aus und wartest gleichzeitig noch mit waitFor() auf die Terminierung, da reicht eigentlich eins von beiden. Probier's mal ohne waitFor.
 
J

JayJay

Gast
Ja, der Prozess wird mit:
this.process = Runtime.getRuntime().exec( cmd );

gestartet. Ohne den Loader, d.h. wenn ich die Programme einzeln starte (per Hand) funktioniert das dinge wirklich perfekt.

Ich werd es mal mit waitfor probieren, was aber eig. nicht das problem sein dürfte...
 
J

JayJay

Gast
hi, hab das ding mal ausprobiert zeigt leider keine veränderungen.

Also es liegt definitiv an dem ServiceLoader, ohne Service-Loader funktioniert alles wunderbar und einwandfrei. Der Ladevorgang des Programs sieht genau so aus wie hier oben beschrieben. d.h. in der methode "private int runServiceApp(){ ".

würde mich über ein paar Ideen freuen.

PS: der Befehl ist identisch.
 
J

JayJay

Gast
So neue Erkenntnis:

Wenn ich warte, bis das mein Programm "abstürtzt" und dann sofort den Servidce-Loader beende funktioniert alles wieder wunderbar, das Programm, dass abgestützt zu scheinen läuft wieder weiter.....


D.h. es muss eine Verbindung zwischen Service-Loader und Programm zu geben.

Die Frage ist welche Verbindung...? Der Service-Loader ruft über Runtime.getRuntime().exec ein programm auf. Egal ob ServiceLoader kaputt oder fehlerhaft ist, eig. sollte dort doch nix passieren?? Würde mich über eine Antwort freuen.

gruß jayjay
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Vom Monolith zu Services in einer Webseite Allgemeine Java-Themen 1
L Erste Schritte TDD testen einer Methode mit injezierten Services? Allgemeine Java-Themen 12
RalleYTN META-INF/services Problem Allgemeine Java-Themen 3
P REST- Services GET/PUT/POST/DELETE Allgemeine Java-Themen 6
G Services verwenden sich gegenseitig Allgemeine Java-Themen 4
G DesignPattern Verschiedene Services Allgemeine Java-Themen 4
M Probleme mit Web Services Allgemeine Java-Themen 3
B mehrere services in einem client Allgemeine Java-Themen 10
E Schneller Einstieg in Java und Web Services Allgemeine Java-Themen 3
volcanos JavaFX-Programme nur in NetBeans selber ausführbar ! command_line: NoClassDefFoundError Allgemeine Java-Themen 39
O Start externer Programme Allgemeine Java-Themen 1
T Programme ausführen.. Allgemeine Java-Themen 3
DanielsLPecke Java Arrays an andere Java Programme schicken und zurück Allgemeine Java-Themen 5
T Während des Programmlaufs andere Programme ausführen Allgemeine Java-Themen 1
J Programme erklären Allgemeine Java-Themen 1
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
C Prozesssteuerung - Speicherhungrige externe Programme werden blockiert Allgemeine Java-Themen 2
F Mit Java Programme aus der Taskleiste auslesen Allgemeine Java-Themen 5
E Eure erstellten Programme Allgemeine Java-Themen 3
B Externe Programme und ProcessBuilder Allgemeine Java-Themen 5
G Library für CNC Programme Allgemeine Java-Themen 2
J Können Programme sich selbst erweitern? Allgemeine Java-Themen 6
Fu3L Java Programme an Taskleiste anheften Allgemeine Java-Themen 5
D externe programme / Jdesktoppane, ... Allgemeine Java-Themen 6
M Plugins für eigene Programme Allgemeine Java-Themen 3
GilbertGrape Jetty-Dienst startet keine Programme mit Oberfläche Allgemeine Java-Themen 2
C Programme Modularisieren Allgemeine Java-Themen 2
M Prüfen, welche anderen Programme laufen Allgemeine Java-Themen 5
F GCJ bzw. native Java-Programme Allgemeine Java-Themen 7
P Bekannte in Java geschriebene Programme Allgemeine Java-Themen 15
W Einfaches Installer/setup tool für java programme das. Allgemeine Java-Themen 4
C Java 6 Programme irgendwie lauffähig machen für Mac 10.5 Allgemeine Java-Themen 11
P Server für Java- Programme Allgemeine Java-Themen 8
A State-of-the-Art Techniken für Desktop Programme ? Allgemeine Java-Themen 3
D mehrere Programme miteinander kommunizieren lassen Allgemeine Java-Themen 12
X Java Programme verschlüssen Allgemeine Java-Themen 14
P Java 6 kompilierte programme laufen die auch unter JRE 1.4.x Allgemeine Java-Themen 43
M Fremde Programme öffnen? Allgemeine Java-Themen 16
S programme? Allgemeine Java-Themen 2
S Programme für Struktogramm? Allgemeine Java-Themen 16
S 5. Programme, die EXE-Dateien aus JAVA-Anwendungen erstellen Allgemeine Java-Themen 4
K Mit Java kleine Freeware Programme erstellen. Geht das? Allgemeine Java-Themen 16
Y Aus einem Java Programm andere (Exe-)Programme starten Allgemeine Java-Themen 3
8 Programme für bestimmte Dateitypen finden Allgemeine Java-Themen 6
T Benötigte Programme für Java ! Allgemeine Java-Themen 29
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
M Programme auf anderen Rechnern auführen Allgemeine Java-Themen 4
H java Programme als batch starten Allgemeine Java-Themen 13
S java Programme über Konsole starten Allgemeine Java-Themen 5
T Java Programme verpacken Allgemeine Java-Themen 15
S programme schreiben Allgemeine Java-Themen 3
Z Java Programme laufen nicht zusammen Allgemeine Java-Themen 9
K java programme auf deutsch? Allgemeine Java-Themen 4
Q Programme ausführen Parameter einstellen Allgemeine Java-Themen 9
T mit Java per DDE auf Windows-Programme zugreifen Allgemeine Java-Themen 7
V Fehlerfreie Java-Programme lassen sich nicht ausführen Allgemeine Java-Themen 2
G Programme mit Java öffnen Allgemeine Java-Themen 7
O Maven ein externes jar laden ohne die Applikation neu zu kompilieren Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
Tobero .jar Dateine aus einem Ordner laden (Java 16) Allgemeine Java-Themen 5
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
L Jar Dateien in Classpath laden ab JDK 9+ Allgemeine Java-Themen 11
C Wav-Datei aus Jar laden? Allgemeine Java-Themen 11
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
T Compiler-Fehler NoClassDefFoundError beim Laden einer Class Allgemeine Java-Themen 11
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
I Laden von Informationen aus Dateien: Austauschbarkeit: 2 Dateien sinnvoll? Allgemeine Java-Themen 2
H Laden einer (Resourcendatei) aus einem Jar-File Allgemeine Java-Themen 17
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
L Seite einer Partner Website neu laden Allgemeine Java-Themen 1
RalleYTN Audiolänge einer MP3 Datei erhalten ohne diese vollständig zu laden Allgemeine Java-Themen 15
S Maven Jars dynamisch laden / Plugin-Struktur erstellen Allgemeine Java-Themen 14
X Klassen aus jar in jar Laden Allgemeine Java-Themen 1
X Mehrere booleans in Datei Speichern, Updaten und Laden Allgemeine Java-Themen 1
L Mapdaten laden Allgemeine Java-Themen 10
B Aktuellen Sourcecode aus Browser laden Allgemeine Java-Themen 43
HoloYoitsu Kann .dll nur aus Eclipse heraus laden Allgemeine Java-Themen 7
F Teil eines Bildes laden Allgemeine Java-Themen 1
L JavaFX JavafX externe FXML laden? Allgemeine Java-Themen 4
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Allgemeine Java-Themen 3
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
F Java Native/Shared Library (.so) laden macht Probleme Allgemeine Java-Themen 3
V Input/Output Sound Dateien aus Jar laden Allgemeine Java-Themen 18
V Input/Output Gif Bilder Animiert aus einer Jar laden Allgemeine Java-Themen 4
V Input/Output Swing Icons in Jar Archiv laden Allgemeine Java-Themen 10
C BufferedImages in Jar laden. Allgemeine Java-Themen 1
G StackoverflowError beim laden einer FXMML Datei Allgemeine Java-Themen 1
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
J Arraylist speichern und laden? Allgemeine Java-Themen 5
S Applet in html laden; InvocationTargetException,.. nur warum ? Allgemeine Java-Themen 0
M Klassen Klasse Dynamisch laden und Konstruktor aufrufen Allgemeine Java-Themen 1
A Anderes Fenster neu laden Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben