Je développe des applications web et j'utilise jBoss 4.0.2 et quand j'ai redéployé plusieurs fois WAR avec eclipse, jBoss va planter parce qu'il manque de mémoire. Et quand je dois installer une nouvelle version dans l'environnement de production, il faudra consommer de la mémoire des serveurs de production, ce qui signifie que je dois arrêter jBoss pour empêcher le redéploiement de la mémoire du serveur client. Y a-t-il du travail pour ce problème?jBoss 4.0.2 déployer plusieurs fois le même WAR provoque le crash de jBoss à cause des erreurs PermGem/Out-of-Memory
Répondre
Fondamentalement, non. En raison du fonctionnement des classloaders JBoss, chaque déploiement utilisera un morceau de PermGen qui ne sera pas publié même si l'application n'est pas déployée.
Vous pouvez atténuer les symptômes en augmentant la taille du pool de mémoire PermGen à plusieurs centaines de megs (ou même des concerts), ce qui rend le problème plus facile à vivre. J'ai également constaté que la réduction de l'utilisation de champs statiques dans votre code (en particulier les champs statiques qui se réfèrent à des objets volumineux) réduit l'impact sur PermGen.
Idéalement, je n'utiliserais pas de déploiement à chaud en production, mais je ferais plutôt fermer le serveur, remplacer le fichier WAR/EAR, puis le redémarrer.
Je ne suis pas sûr que ce soit lié, mais je le soupçonne - JBoss n'est pas compatible J2EE en ce qui concerne la mise en œuvre de la séparation des applications car il sort de la boîte. Comme il vient, il ya un classloader dans lequel toutes les classes sont mises et donc il n'est pas possible de décharger des classes et donc vous allez avoir ce problème. Vous pouvez configurer jboss pour être plus conforme à J2EE à cet égard.
Obtenez-vous le "mémoire insuffisante Permgen" ou obtenez-vous régulièrement hors de la mémoire?
J'ai également progressé en connectant JProfiler et en vérifiant l'utilisation de la mémoire.
J'ai fini par simplement redémarrer Jboss tout le temps - n'a pas pris trop de temps.
Essayez ceci (qui applique à Java de Sun):
-XX: + UseConcMarkSweepGC -XX: + CMSPermGenSweepingEnabled -XX: + CMSClassUnloadingEnabled -XX: MaxPermSize = 128m
CMS peut réellement GC le tas de génération permanente (le tas où sont vos classes). La définition de MaxPermSize est inutile, mais la valeur par défaut est faible pour un serveur d'applications.
- 1. JBoss WAR Problème de déploiement (problèmes de mise en cache?)
- 2. Question sur le déploiement de Jboss
- 3. Exécution de JBoss 4.2.3 et de JBoss 5.1 sur le même serveur
- 4. Configurer plusieurs instances de JBoss sur la même machine
- 5. JBoss: Ajout de ressources JMS à JBoss 4.3
- 6. ColdFusion 8 en tant que WAR sur JBoss 4.2.3 erreur WEB-INF/flex-config.xml
- 7. JBoss Log File Maintenance/Cleanup
- 8. JBoss: le fichier WAR dans EAR ne trouve pas la bibliothèque JAR sur le chemin de classe
- 9. exposer le serveur RMI dans JBoss?
- 10. JBoss Configuration
- 11. Déployer des erreurs BHO
- 12. Test de basculement Jboss
- 13. nom provoque des erreurs
- 14. Plusieurs applications sur une instance JBoss
- 15. Débogage à distance sur JBoss
- 16. Rechargement un fichier de configuration sous jBoss
- 17. Adresses IP JBoss Binding
- 18. Groovy: déployer un fichier war
- 19. JBoss Monitoring/Profiling
- 20. Le module de connexion personnalisée JBoss ne fonctionne qu'une seule fois
- 21. Erreur lors du déploiement d'une application sur JBoss 5 fonctionnant correctement sur JBoss 4.2
- 22. Comment déployer/importer le paquet war dans Netbeans
- 23. authentification JBoss Question (s)
- 24. jboss connection pooling
- 25. JBoss Seam - ViewExpiredException
- 26. Ordre de déploiement dans Jboss 5
- 27. Comment configurer le connecteur IBM IMS dans JBoss
- 28. Jboss 5 Intégration avec Apache 2.2
- 29. Fuite de mémoire dans JBoss
- 30. Activation des statistiques ehcache dans jboss 4.2.1