2012-01-04 2 views
1

Портирование веб-приложений, которые ранее были на Jboss 4.2.3 на Jboss 6. Всего в настоящее время около 12 веб-приложений, из которых только 4 развернуты.Подростки растут при развертывании веб-приложений на Jboss 6

Эти веб-приложения основаны на Axis2 1.5.5, spring 2.5, hibernate 3.2.5, OpenJPA 1.0, saxon 9.1.

Изоляция загрузчика классов устанавливается следующим образом

<class-loading java2ClassLoadingCompliance="false"> 
     <loader-repository> 
      webapp:loader=webapp.war 
      <loader-repository-config>java2ParentDelegation=false</loader-repository-config> 
     </loader-repository> 
</class-loading> 

Я вижу, что PermGen уже достигла 440MB и растет на Jboss 6 и я поставил -XX:MaxPermSize=512m

Может кто-нибудь предоставить мне материалы в определении проблемы Вот.

окружающая среда: JDK 1.6.0_26, Ubuntu 11,10

+1

Кто сказал, что это проблема? 12 приложений много для развертывания на одной JVM, а 440MB pf permgen не звучит чрезвычайно возмутительно, чтобы справиться с этим. – skaffman

+0

skaffman, спасибо за ваш ответ, те же приложения берут около 150-170 Мбайт PermGen на JBoss 4.2.3, а по умолчанию - -XX: MaxPermSize = 256m вполне достаточно. Но на Jboss 6 я развернул только 5 из 12 приложений, а PermGen почти в 3 раза больше. Я также подтвердил, что количество загруженных классов составило около 25 тыс. На Jboss 4.2.3, а на Jboss 6. - 60K. – Sathwik

+0

JBoss 6 гораздо более требовательнее к памяти, чем JBoss 4. Это звучит правильно. – skaffman

ответ

0

Причина, почему JBoss-более требовательный на стороне завивки поколения памяти, я не знаю. Но время запуска может быть улучшено при отключении сканирования аннотаций (если не используется). Это помогло нашему приложению.

0

Я столкнулся с той же проблемой на прошлой неделе. Микроконтейнер JBoss-6 пытается отсканировать конкретные аннотации Jboss, загружая классы из всех JAR-пакетов в пути класса при запуске. Это приводит к раздуванию пермгена, когда он начинает загружать все нежелательные классы.

Чтобы уменьшить объем сканирования, Microcontainer предоставляет другой дескрипторный крючок с помощью jboss-scan.xml. Добавьте этот «jboss-scan.xml» в WEB-INF внутри WARs и «jboss-scan.xml» в META-INF внутри EAR.

<scanning xmlns="urn:jboss:scanning:1.0"> 

    <!-- Purpose: Disable scanning for annotations in contained deployment. --> 

</scanning>