Развитие Permgen при развертывании веб-приложений на Jboss 6 - PullRequest
1 голос
/ 04 января 2012

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

Эти веб-приложения основаны на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 уже достиг 440 МБи растет на Jboss 6, и я установил -XX:MaxPermSize=512m

Может кто-нибудь предоставить мне информацию для определения проблемы здесь.

Среда: JDK 1.6.0_26, Ubuntu 11.10

Ответы [ 2 ]

0 голосов
/ 29 июня 2013

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

Чтобы уменьшить объем сканирования, микроконтейнер предоставляет еще один дескриптор, с помощью 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>
0 голосов
/ 04 апреля 2013

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

...