Tomcat PermGen

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,

ich verwende den Tomcat- Server auf einem Ubuntu- Rechner und bekomme bei jedem mal starten des Tomcat Servers die Fehlermeldung unten. Ich hab gegoogelt und gelesen, dass ich irgendwie die Speichergröße erhöhen muss, könnte mir jemand sagen, wo genau (in welcher Datei) ich da was eintragen muss, damit ich diese Fehlermeldung ausschalten kann.
Vielen Dank,
lg


Code:
05.09.2009 05:48:35 org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: PermGen space
 
M

maki

Gast
Seltsam, starten sollte de TC eigentlich in der Standardkonfig ohne Probleme.

Umgebugsvariablen etc. trägt man am besten in der setenv.(bat|sh) ein, oder in die Umgebungsvariable CATALINA_OPTS, oder man ändert die catalina.(bat|sh).
 

MQue

Top Contributor
Seltsam, starten sollte de TC eigentlich in der Standardkonfig ohne Probleme.

Umgebugsvariablen etc. trägt man am besten in der setenv.(bat|sh) ein, oder in die Umgebungsvariable CATALINA_OPTS, oder man ändert die catalina.(bat|sh).

Und was schreibe ich da genau hinein?

PS: hab jetzt den TC neu instaliert, dann ist es ca. 10 zu deployen gegangen und jetzt hab ich wieder das gleiche Problem.

lg
Michl
 
M

maki

Gast
Und was schreibe ich da genau hinein?
Eben die Paramter für den höheren PermGen, [c]-XX:MaxPermSize[/c].

PS: hab jetzt den TC neu instaliert, dann ist es ca. 10 zu deployen gegangen und jetzt hab ich wieder das gleiche Problem.
Was heisst den
dann ist es ca. 10 zu deployen gegangen
Meinst du dass der Fehler auftritt wenn die WebApp öfters deployed wird?
Ein Fehler in deiner Anwendung oder im Tomcat können dazu führen.
Würde da mal nachsehen welche Klassen den PermGen verstopfen.
 

MQue

Top Contributor
Ich befürchte ich habe in meiner Applikation irgendwo einen memory leak (wahrscheinlich beim Datenbankinitialisieren/Zugriff mit Hibernate).

Was ich allerdings überhaupt nicht verstehe ist, das ich in der NetBeans IDE alle Projekte geschlossen habe, den Ordner webapps von Tomcat völlig gelöscht habe und trotzdem unteren Stacktrace mit meinen Klassen bekomme. Wo kommen die her, gibts da von Tomcat noch eine Referenz auf meine Projekte oder wie ist das möglich?

lg

Code:
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:267)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
        at net.hibernate.InitSessionFactory.<clinit>(InitSessionFactory.java:26)  // ab hier meine Klassen
        at net..hibernate.BasicManager.getSession(BasicManager.java:28)
        at net.hibernate.EventManager.listBlogtext(EventManager.java:29)
        at net.hibernate.DatabaseInterface.getAllBlogtext(DatabaseInterface.java:45)  // bis hier
        at org.apache.jsp.jsp.index_jsp._jspService(index_jsp.java:82)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 
M

maki

Gast
Die sog. Permanent Generation hält alle langlebigen Objekte, so langelebig dass die Sun JVM sie nie wieder abräumt AFAIK. Dazu gehören zum Beispiel Klassenobjekte ansich (Class), die mal vom Classloader geladen wurden, irgendwann ist die PermGen dicht, ist zB. ein Problem für die meisten Server die lange laufen und wo Anwendungen ge-updatet werden.

In dieses Thema solltest du dich mal reinlesen, ist wichtig :)

Keine Ahnung was Netbeans da macht, das Problem sollte aber verschwinden wenn der Tomcat Server neugestartet wird.

Kann mich gerade nicht erinnern, mit welchen Speichereinstellungen der TC in der Standardkonfig anläuft, wenn es wirklich die üblichen 64 MiB sind, erklärt das einiges, das reicht auf keinen Fall.
Noch ein Wort zu Ubuntu und Tomcat, ich hoffe du "installierst" nciht über apt-get/aptitude, am besten das TC Archiv runterladen, entpacken und nutzen, die Version in den Repos ist imho verhunzt.
 

MQue

Top Contributor
Die sog. Permanent Generation hält alle langlebigen Objekte, so langelebig dass die Sun JVM sie nie wieder abräumt AFAIK. Dazu gehören zum Beispiel Klassenobjekte ansich (Class), die mal vom Classloader geladen wurden, irgendwann ist die PermGen dicht, ist zB. ein Problem für die meisten Server die lange laufen und wo Anwendungen ge-updatet werden.

In dieses Thema solltest du dich mal reinlesen, ist wichtig :)

Keine Ahnung was Netbeans da macht, das Problem sollte aber verschwinden wenn der Tomcat Server neugestartet wird.

Kann mich gerade nicht erinnern, mit welchen Speichereinstellungen der TC in der Standardkonfig anläuft, wenn es wirklich die üblichen 64 MiB sind, erklärt das einiges, das reicht auf keinen Fall.
Noch ein Wort zu Ubuntu und Tomcat, ich hoffe du "installierst" nciht über apt-get/aptitude, am besten das TC Archiv runterladen, entpacken und nutzen, die Version in den Repos ist imho verhunzt.

ich hab mir diese 2 Blogs mal durchgelesen, da wurde mir klar das der Fehler auch bei mir liegen könnte :) Frank Kieviet : Weblog

Ich war auch der Meinung, dass die Fehlermeldung weg ist, wenn ich den Tomcat neu starte aber dem war nicht so, das irritiert mich ein bisschen,

Ich habe jetzt Netbeans neu installiert (eine Version höher), jetzt bekomme ich diese Fehlermeldung mal nicht (hab aber auch noch nicht deployed - da mit dieser höheren Version von NetBeans meine Projekte nicht mehr funktionieren - , nur mal gestartet)

Ich verwende in meinem Projekt Hibernate, vielleicht liegt da der Fehler in meiner Implementierung (im der Mitte des Stacktrace waren ein paar Klassen von meiner Hibernate- Implementierung angeführt),
Ich werde es jetzt so machen, wie du vorgeschlagen hast -> mit Spring und Hibernate - ohne InitSessionFactory, auch werd ich Struts einbauen, oder sollte ich statt Struts JSF verwenden (Kenn mich mit beiden noch nicht so richtig aus, weiß nur, dass Struts das MVC nachbildet und deklarativ einiges gemacht werden kann).

Auch bin ich mir nicht sicher ob ich Hibernate noch verwenden soll, da es ja in diese Richtung was neues gibt, hab ich hier in diesem Forum gelesen (mir fällt der Name jetzt gerade nicht ein).

Könntet Ihr mir vielleicht in diese Richtung ein paar Tips geben.

Vielen Dank,
lg
 
Zuletzt bearbeitet:
M

maki

Gast
Bekommst du den Fehler in Netbeans?
Dann solltest du den Speicher von Netbeans erhöhen, inkl. PermGen Space, da Netbeans mit einer minimal Speicher Konfig kommt die imho nie ausreicht sobald JEE im Spiel ist, dazu die Datei [c]/etc/netbeans.conf[/c] abändern.

Ob du Struts oder JSF einsetzen willst, oder Wicket oder oder oder... die Entscheidung kann ich dir nicht abnehmen, struts jedoch scheint definitiv auf dem absteigenden Ast zu sein...

Alternative zu Hibernate? Du meinst wohl EclipseLink, anders als Hibernate werden hier keine Proxies verwendet, macht die Sache einfacher imho.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Gelegentlicher Absturz Tomcat Anwendung: PermGen Space Allgemeines EE 6
S Tomcat Application Path bestimmen Allgemeines EE 0
TheWhiteShadow JSF plugins für tomcat webapp Allgemeines EE 0
X Tomcat checkParachute Allgemeines EE 3
C Servlet Tomcat/Jersey findet REST-Service nicht Allgemeines EE 3
J Global JNDI Tomcat Allgemeines EE 0
N WebService WAR-File auf Tomcat-Server Allgemeines EE 1
C WebSocket in Tomcat wirft 404 Allgemeines EE 0
S Eclipse mit Tomcat und Jersey Allgemeines EE 7
S Fehlersuche in Eclipse/Tomcat -> Error-log?? Allgemeines EE 2
S Tomcat und 404 -> von jetzt auf gleich Allgemeines EE 4
L JNDI auf Tomcat mit EE Allgemeines EE 4
E Servlet Tomcat Method Signature Resolution Allgemeines EE 7
J Logging und Monitoring unter Tomcat Allgemeines EE 2
aze Tomcat:Error Pages werden nicht angezeigt Allgemeines EE 4
D JSF JSF 2.0 + ICEFaces + Tomcat 7 Allgemeines EE 3
R Sessionmanagement und Tomcat Allgemeines EE 6
W Tomcat Support mit SLA? Allgemeines EE 3
P Tomcat lädt falsche Datei obwohl richtig angegeben Allgemeines EE 11
N Tomcat funktioniert nach shutdown/startup nicht mehr korrekt Allgemeines EE 9
B Tomcat, JNDI und datasource - Konfiguartion Allgemeines EE 2
JimPanse Tomcat Fehler nach redeploy Allgemeines EE 5
A Java Tomcat findet Website nicht Allgemeines EE 8
S Anfängerfrage Eclipse/Tomcat Allgemeines EE 4
H Installer für Tomcat-Anwendung Allgemeines EE 5
A Tomcat in Eclipse Allgemeines EE 11
T Tomcat: Sessions bleiben zu lange erhalten Allgemeines EE 13
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
A Tomcat, Exceptions beim redeploy Allgemeines EE 4
P Hilfe: Tomcat periodischer Absturz Allgemeines EE 5
MQue Tomcat reload Allgemeines EE 4
neurox Tomcat stoppen Allgemeines EE 1
S Unterschied zwischen Tomcat und Application Server? Allgemeines EE 3
MQue Tomcat Methodenaufruf Allgemeines EE 3
P Eclipse Tomcat Plugin funktioniert nicht mit externem TC-Server? Allgemeines EE 4
MQue TCP- Verbindung nach Tomcat- Start (global) starten Allgemeines EE 4
reibi Tomcat Proxy eintragen Allgemeines EE 2
P CXF Project auf Tomcat laufen lassen - wie? Allgemeines EE 35
R (TOMCAT] Installation Tomcat auf WinXP Allgemeines EE 8
S Tomcat + Eclipse Allgemeines EE 6
T Security Manager in Tomcat Allgemeines EE 2
S Unterschiedliche Pfade bei Tomcat Allgemeines EE 4
ps EJB3 in Tomcat. das hat selbst mich erstaunt Allgemeines EE 18
B Tomcat Manager - .war Datei hochladen. Einfache Frage Allgemeines EE 5
G Probleme im Tomcat - loading WebappClassLoader Allgemeines EE 3
O ApplicationServer vs. Tomcat Allgemeines EE 5
G Verbindung zu Tomcat Allgemeines EE 15
B Tomcat -> Funktions User Credentials hinterlegen Allgemeines EE 7
B fmt:setBundle => Wo liegt die Properties-Datei im Tomcat? Allgemeines EE 3
U Tomcat Compilierproblem Allgemeines EE 2
A Tomcat -- JSP: komisches Problem Allgemeines EE 11
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
R Error ServletContextListener auf Tomcat 6 Allgemeines EE 2
Y myFaces 1.2 und Tomcat 5.x / 6.0 Allgemeines EE 9
S tomcat session timeout - und was danach? Allgemeines EE 1
A Tomcat startet nicht, Einstellungsfehler? Allgemeines EE 3
S Auf Datei ausserhalb des Tomcat zugreifen Allgemeines EE 4
S JSP / Tomcat / Eclipse / Unable to compile class for JSP Allgemeines EE 4
E JBoss mit existierendem Tomcat nutzen? Allgemeines EE 4
M JSP: Tomcat: Serverfehler 500 nur beim IE. Allgemeines EE 2
G JSF 1.2 unter Netbeans 6 mit Tomcat 6.0 ->Navigationsprob Allgemeines EE 6
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
L Tomcat Service mit JPDA debugging starten Allgemeines EE 2
J Tomcat: "Unable to get connection, DataSource invalid&q Allgemeines EE 8
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
F Tomcat: zentraler Class-Ordner? Allgemeines EE 2
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
N Zugriff auf Webapp nur für localhost definieren (Tomcat) Allgemeines EE 2
byte Tomcat Deployment Problem (HTTP Status 503) Allgemeines EE 8
H Tomcat, MySQL Allgemeines EE 4
B tomcat verbergen Allgemeines EE 3
M classNotFoundexception vom tomcat Allgemeines EE 10
B Liferay + Tomcat Allgemeines EE 4
K tomcat: session-unabhängiges speichern Allgemeines EE 3
G Tomcat übersetzt nichts mehr Allgemeines EE 6
M tomcat beim booten mit starten Allgemeines EE 4
F Serverdienst in Tomcat implementieren Allgemeines EE 14
J Tomcat mit eigener Session-Implementierung Allgemeines EE 15
V tomcat 6 webserver oder was ist sein Sinn? Allgemeines EE 3
G eigener Tomcat-Connector f. propiet. Protokoll via TCP/IP Allgemeines EE 2
J wsdl-tomcat-AXIS Allgemeines EE 2
G Tomcat unter Eclipse starten Allgemeines EE 9
F Tomcat mit 128 MB Ram Allgemeines EE 9
C Unable to query Tomcat Manager: couldn't connect to host Allgemeines EE 2
A Cronjob mit Tomcat starten ? Allgemeines EE 4
B Connection Poll ohne TomCat Allgemeines EE 5
N Tomcat GWT-Anwendung - An beliebiger Stelle schreiben Allgemeines EE 2
E Tomcat Einstellungen Allgemeines EE 10
B Servlet-Api.jar auf JBoss? (Migration von Tomcat zu JBoss) Allgemeines EE 4
H Eine kurze Verständnisfrage zum Tomcat Allgemeines EE 2
S Hibernate, Tomcat und Eclipse treiben mich zum Wahnsinn. Allgemeines EE 2
F webanwendung läuft nicht auf Tomcat Allgemeines EE 2
M Tomcat, Hibernate, MySQL und die EOFException Allgemeines EE 7
Y Tomcat Thread-Handling Allgemeines EE 2
K Tomcat als Client nutzen Allgemeines EE 2
L Tomcat auf Windows Server 2003 Allgemeines EE 10
T Sysdeo Eclipse Tomcat Plug-in Allgemeines EE 4
H Tomcat in jbuilder mit startup.bat starten Allgemeines EE 5
P Tomcat Servlet POST Daten als Array Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben