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 :

OutOfMemoryError: PermGen space [MVC]


Sujet :

Spring Web Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Par défaut OutOfMemoryError: PermGen space
    Bonjour à tous,
    je developpe une petite appli avec spring et hibernate et j'ai sans cesse "OutOfMemoryError: PermGen space" alors que c'est une toute petite appli avec une dizaine de beans et de JSP. Le problème est apparu depuis l'instanciation des beans "datasource" (org.springframework.jdbc.datasource.DriverManagerDataSource) et "sessionFactory" (org.springframework.orm.hibernate3.LocalSessionFactoryBean).

    L'augementation de la taill de mémoire de la "permanent generation" (-XXermSize=XXm) résout le probleme qq temps mais au bout d'un certains déploiement et redeploiment, le probleme reviens.

    alors, y aurait-il un autre moyen pour ne plus avoir ce probleme?

    J'utilise Tomcat 6 et netbeans 6.5.
    Merci d'avence

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Par défaut
    Salut,

    la permgen space est une zone de mémoire statique contenant des définitions de classes, de méthodes ... Lors de déploiements successifs, cette zone n'est pas nettoyée par le garbage collector. L'augmentation de la taille mémoire n'est donc qu'une solution temporaire.
    Pour autoriser le GC a vider cette zone, il faut ajouter les options suivantes pour la jvm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

  3. #3
    Membre confirmé Avatar de arnaud.tlse
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Par défaut
    Tu as aussi ce lien (recherche "outofmemoryerror permgen space" dans google ==> première page ).

    http://www.freshblurbs.com/explainin...-permgen-space

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Par défaut "OutOfMemoryError : PermGen space" : une partie de réponse
    hello,
    j'avais tenté de regrouper ici les solutions que j'ai pu lire et/ou tester sur ce problème.
    si vous en voyez de nouvelles, je suis preneur.
    Sinon, on dit aussi que ce problème se produit moins souvent sur le JDK d'IBM (ie)

    Salutations

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ce problème, dans le cas présent, est lié à tomcat + CGLib, cette dernière étant utilisée par hibernate. Au dernières nouvelles que j'aie, aucune solution n'a été trouvée à ce sujet. Les auteurs de la CGLib renvoyant la balle à tomcat, en disant qu'il s'agit vraissemblablement d'un bug dans leur classloader et les developpeur de tomcat renvoient la balle aux développeur de CGLib, car ils n'arrivent pas a créer un code reproduisant l'erreur et la mettant en évidence. Apparement, pour ce qui est de cglib, les deux seules solutions semblent
    - soit se débarasser de tomcat et untiliser un autre conteneur.
    - soit redémarrer régulièrement tomcat sur ton banc d'essai (ce que je fais chez moi)

    Quand au garbage collecting des classes, c'est pas un problème, il est activé automatiquement depuis pas mal de temps.


    PS: un erreur courant a éviter c'est aussi d'inclure ton driver JDBC dans ta webapp plutot que de le mettre dans le common de tomcat (partagé entre toutes les webapps)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Par défaut
    Bonjour à tous,
    Merci bien de vos réponses.
    J'ai essayé plein de choses comme augmenter la mémoire utilsée par la jvm, forcer la garbage colletion comme l'a suggéré "Kirua12" mais rien a faire, toujours cette maudite erreur ( Mon driver JDBC est dans mon classpath). bon, je n'ai qu'à essayer avec d'autres conteneurs web

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Exception] OutOfMemoryError: PermGen space
    Par n@n¤u dans le forum JOnAS
    Réponses: 16
    Dernier message: 15/11/2009, 10h23
  2. Réponses: 6
    Dernier message: 28/10/2009, 13h48
  3. Horrible Exception: java.lang.OutOfMemoryError: PermGen space
    Par liquideshark dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 06/01/2009, 10h54
  4. java.lang.OutOfMemoryError: PermGen space
    Par LGnord dans le forum Langage
    Réponses: 15
    Dernier message: 13/11/2007, 18h21
  5. Réponses: 9
    Dernier message: 28/08/2007, 16h13

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