IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Web Java Discussion :

[Spring MVC] + [iBatis] java.lang.OutOfMemoryError: PermGen space


Sujet :

Spring Web Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Spring MVC] + [iBatis] java.lang.OutOfMemoryError: PermGen space
    Bonjour,
    j'ai un souci avec mon application c'est qu'elle me sort l'erreur "java.lang.OutOfMemoryError: PermGen space" juste le serveur de mon hebergeur mais pas sur mon poste ! j'utilise ces outils ( ce sont les memes versions que chez l'hebergeur pour tomcat/jdk) :

    Spring v 2.0.8
    ibatis 2.3.4
    jstl 1.1
    Tomcat 5.5.25
    jdk1.5.0_06

    j'arrive toujours pas cerner le probleme, j ai lu plusieurs solution mais rien n'y fait j'ai meme effectuer une augmentation de memoire heap (-server -XX:+UseParallelGC -Xmx768m -XX:MaxPermSize=256m -Djava.awt.headless=true -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled)
    NB: j'utilise pas de singleton pour l'instant.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    "PermGen", ça veut dire "génération permanente". La JVM de Sun utilise un collecteur de mémoire générationnel : le collecteur doit supprimer régulièrement les objets inutilisés et pour ça il classe les objets en 2 catégories (ou plus peut-être) : les jeunes les les vieux. Parce que statistiquement la plupart des jeunes auront une vie courte (beaucoup d'objets locaux à une méthode par exemple) alors que les vieux resteront encore un certains temps (objets contenant des données à plus long terme). Ca permet au collecteur de regarder plus souvent les jeunes sans perdre trop de temps à vérifier si les vieux ne sont plus utilisés.

    Enfin ça c'est juste pour comprendre les générations, rien de plus ;) . L'important est qu'il existe aussi une "génération" permanente, qui sert à stocker des informations qui ne seront jamais supprimées (comme la définition des classes par exemple). A chaque fois que tu (re)déploies une appli dans Tomcat, cette zone se remplit. Quand elle est pleine, je crois que tu n'as pas d'autre solution que d'arrêter et relancer le serveur.

    Quelque chose peut t'aider cependant : fixer la taille de cette génération permanente. Il suffit d'ajouter à ta ligne d'exécution de java :
    -XX:PermSize=256m et -XX:MaxPermSize=256m

    Ca permet de fixer la taille initiale et la taille maximale de la génération permanente (ici à 256 Mo, c'est toi qui voit la taille dont tu as besoin ; malheureusement je ne connais pas la valeur par défaut, mais je crois que c'est nettement moins que ça).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    bonjour,

    J'ai le même message d'erreur dans les logs de Tomcat, c'est-à-dire :
    java.lang.OutOfMemoryError: PermGen space
    Je suis sur windows avec tomcat 5.5 et je n'ai que l'outil Tomcat configure.

    dans l'onglet Java, pour la partie Java Options, j'ai :
    -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 5.5
    -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 5.5
    -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\endorsed
    -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 5.5\temp
    -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\logging.properties
    Je ne sait pas comment rajouter la ligne :
    -XXermSize=256m et -XX:MaxPermSize=256m
    Je ne connait pas grand chose à Tomcat, est ce que tu pourrais m'expliquer?
    Merci,

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Bonjour

    Je ne connais pas l'outil de configuration de Tomcat.
    Il s'agit d'une option de la JVM, pas de Tomcat lui-même. As-tu un autre onglet plus spécifique à la JVM ?

    Sinon tu peux essayer d'introduire la modification directement dans un des fichiers de lancement de Tomcat : <répertoire de Tomcat>/bin/catalina.bat.
    Dans ce cas, essaie d'ajouter les options à la ligne commençant par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Malheureusement sous %TOMCAT_HOME%/bin, je n'ai pas de .bat, mais que des .jar et .exe (pour le démarrage du service Tomcat et de la console de configuration).
    Lorsque je lance l'outil Tomcat configure, j'ai un onglet Java. je vais essayer de rajouter cette option, on va bien voir si cela fonctionne ou pas.
    Merci,

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Tu peux aller voir:
    http://www.galagoo.net/dotclear/index.php?2005/02/19:

    OutOfMemoryError : PermGen space
    par Olivier Hanny, samedi 19 février 2005 à 09:08 :: Java
    La machine virtuelle utilise une zone mémoire séparée pour les objets de l'API de réflexion (objets Class et Method). Cette zone mémoire s'appelle "Permanent Generation space". Par défaut, la taille de la PermGen space vaut 32M. Il faut parfois augmenter cette valeur (OutOfMemoryError : PermGen space), en paramétrant la VM de la façon suivante:-XX:MaxPermSize=256M.
    Ce problème m'est arrivé avec Lomboz, lors de la génération des classes d'un module EJB volumineux (Menu Windows->Preferences->Java->Installed JRE->Edit->Default VM Arguments = -XX:MaxPermSize=256M).

  7. #7
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut pour configurer tomcat
    Sous windows, dans l'outils 'configure' de tomcat, il suffit que tu ajoutes les options "-XX..." dans l'onglet "Java" > "Java options" à la suite des autres options et tu redémarres.

    Perso, je déconseille de le mettre en config par défaut du jdk de l'OS car ce sera valable pour tous les progs java qui s'executeront sur cette machine.

    Sinon pour ton probleme de permgen, il faut repérer plus finement ce qui ne va pas. Va voir sur mon blog à cet article : http://tcourant.wordpress.com/2009/1...ish-ou-tomcat/

Discussions similaires

  1. Erreur "java.lang.OutOfMemoryError: PermGen space"
    Par Fennec. dans le forum Autres
    Réponses: 1
    Dernier message: 16/12/2010, 23h10
  2. Réponses: 0
    Dernier message: 15/10/2010, 15h01
  3. java.lang.OutOfMemoryError: PermGen space
    Par john_wili dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 11/04/2009, 19h23
  4. Horrible Exception: java.lang.OutOfMemoryError: PermGen space
    Par liquideshark dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 06/01/2009, 10h54
  5. java.lang.OutOfMemoryError: PermGen space
    Par LGnord dans le forum Langage
    Réponses: 15
    Dernier message: 13/11/2007, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo