2016-04-13 1 views
0

Je sais qu'il ya des milliers de questions au sujet de cette erreur, mais je n'ai pas trouvé une solution pour mon problème. J'ai trois applications Web déployées sur un serveur. Ces applications sont faites avec Java, cadre de printemps et hibenate. Mon serveur a tomcat6 et opendjdk 1.7. Comme je l'ai déjà dit, après avoir utilisé mes applications pendant un certain temps, apparaît l'espace OutOfMemoryError: Permgen. Dans toutes les solutions que je lis suggère que le changement de l'option MaxPermSize avec la commande:OutOfMemoryError: espace PermGen - XX: MaxPermSize ne fonctionne pas

JAVA_OPTS="-XX:PermSize=256m -XX:MaxPermSize=512m" 

ou

java -XX:PermSize=256m -XX:MaxPermSize=512m 

J'ai essayé mettre la première commande sur le fichier tomcat6.conf de mon serveur et en tant que fichier setenv.sh, j'ai essayé le second directement dans la ligne de commande mais aucune de ces solutions ne fonctionne. Lorsque j'exécute la commande:

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize' 

Les valeurs de mon PermGen Space sont les mêmes avant que j'aie essayé de le changer. J'ai parlé avec administrateur de mon serveur et il dit que ces valeurs ne peuvent pas changer parce qu'elles sont basées sur un pourcentage du total du système de mémoire et la manière unique de les changer est d'augmenter la mémoire du système. Je suis confus parce que mon administrateur dit une chose et les solutions que j'ai lues en disent d'autres. Peut changer ces valeurs? Comment je peux augmenter la valeur de PermGen?

+0

Permgen est supprimé en Java8, peut-être que vous pourriez essayer? – Antoniossss

+0

Mes applicatios sont testés avec Java 7. Je ne sais pas si mettre à jour la version de Java peut produire que mes applications ne fonctionne pas pour les incompatibilités entre les versions de dépendances de mes applications et java 8. – battu

+0

Java est rétrocompatible. Ce n'est qu'une petite exception de cette règle, mais il est facile à corriger et ne se produira que si vous compilez votre application avec JDK8 ciblant 1.7 et l'exécutez sur 1.7 JVM. http://stackoverflow.com/questions/32954041/concurrenthashmap-crashing-application-compiled-with-jdk-8-but-targeting-jre-7 – Antoniossss

Répondre

0

vous évoquez OutOfMemoryError mais vous ne l'avez pas dit que MaxPermSpace est la cause dans l'exception. Peut-être que vous venez de manquer de mémoire Heap. Dans ce cas, les paramètres -Xmx et -Xms devraient être définis.

usualy si elle est la PermSpace il est mentionné comme étant une cause à l'intérieur de l'exception.

+0

Désolé pour mon échec de la spécification, mais comment le titre dit l'erreur est sur le point Espace PermGen – battu