D'ordinaire nous utilisons la jvm jrockit sur nos serveurs, cependant pour les besoins d'un projet spécifique, j'ai installé un environnement Weblogic 11g avec une JVM Sun.

Le démarrag du serveur admin se fait sans encombre jusqu'au moment où je veux accéder à la console d'administration. Le système tente alors de déployer l'application, et tombe rapidement en erreur de type code 500. Dans les logs du serveur d'application je vois apparaître l'exception suivante :

<Jun 23, 2011 7:02:40 PM CEST> <Error> <netuix> <BEA-423443> <Exception while initializing SingleFileServlet: [java.lang.OutOfMemoryError: PermGen space].
java.lang.OutOfMemoryError: PermGen space (...)

Le PermGen space est une zone mémoire gérée dans la jvm de sun et qui contient tous les objets qui ne sont pas gérés par le garbage collector (structure de classes, méthodes, annotations, les chaînes littérales...)

Le PermGen space est gérée par les options mémoires suivantes :

-XX:PermSize=256m

-XX:MaxPermSize=256m

Pour résoudre mon problème j'ai donc ajouté l(option suivante à mon script de démarrage :

-XX:MaxPermSize=256m

Remarque : l'option -noclassgc interdit au garbage collector de nettoyer la zone mémoire PermGen. Elle est donc déconseillée.

L'application de console d'administration se déploie désormais sans problème.

Et voilà ;)