PermGen Space + Solução do Livro "Arquitetura Java" - Entendimento confuso - [RESOLVIDO]

Prezados,

estamos passando por um erro de PermGen Space em um Servidor OC4J no embiente de produção, que está ocorrendo com uma frenquência de + ou - a cada 2 novos Redeploys feitos na aplicação, algo em torno de 1 mês pra estourar de novo.

Pesquisando em vários fóruns do GUJ, achei a solução no livro Arquitetura Java, com base em muita pesquisa e desde já agradecendo aos amigos que passaram pelo problema e souberam esclarecer de uma forma excelente, aqui está o tópico esclarecedor do Viny Godoy: http://www.guj.com.br/posts/list/92491.java

Porém a solução dada ao final do livro trás o seguinte trecho:

Ficou confuso pra mim o seguinte: Reniciar o SERVIDOR… Máquina ou AS ???

Pois até então estamos restartando o Container da aplicação a cada novo Deploy, mas restartar a máquina é inviável… Restartar só o COntainer tem funcionado. É isso mesmo ou eu interpretei errado ?

Att.

Até onde sei o problema está na JVM e é está que realmente precisa ser reestartada. Porém em todos os servidores que eu já mexi, parar ou reestartar o servidor também para ou reestarta a JVM.

Opa Rafael valew cara… também imaginei que isso acontecesse… Mas o Servidor que você fala é o AS mesmo né ?? Alguém saca de como se comporta o OC4J ??

Abs []

Acredito que o servidor de aplicação. Uma vez que ele tenha sido reiniciado o processo da JVM também será, evitando o problema citado. Até porque reiniciar o sistema operacional não faz muito sentido neste caso.

O que seria AS? Administration Server talvez?
Bom de qualquer forma o que você precisa é reiniciar a instância, no caso de um server sem cluster, ou os nós do cluster, caso de um server com cluster.
Cada instância ou nó de cluster roda em uma JVM separada (ao menos no glassfish e imagino que outros servidores usam a mesma estratégia), portanto são
essas JVMs que precisaram ser reiniciadas. O resto pode continuar como está.

Acredito que o servidor de aplicação. Uma vez que ele tenha sido reiniciado o processo da JVM também será, evitando o problema citado. Até porque reiniciar o sistema operacional não faz muito sentido neste caso.[/quote]

Assim como Rafa falow eu tbm imaginei isso… Porém precisava confirmar sendo que não tenho acesso ao AS, tem uma equipe específica pra isso… Provavelmente é por isso que até então o erro não nos assolou mais…

Abs []

[quote=dev.rafael]O que seria AS? Administration Server talvez?
Bom de qualquer forma o que você precisa é reiniciar a instância, no caso de um server sem cluster, ou os nós do cluster, caso de um server com cluster.
Cada instância ou nó de cluster roda em uma JVM separada (ao menos no glassfish e imagino que outros servidores usam a mesma estratégia), portanto são
essas JVMs que precisaram ser reiniciadas. O resto pode continuar como está.[/quote]

AS - Application Server…

Valew entendi… Como não é cluster, bastará reiniciar a instância…

Abs []

oi,

seria interessante você tentar descobrir qual é o problema antes de achar uma solução… :slight_smile:

dá uma olhada no link abaixo, pode te ajudar

http://blog.ej-technologies.com/2009/04/in-screencast-below-i-show-strategy-for.html

[]´s

Concordo com o André… Eu acho que a solução de reiniciar pode ter alternativas melhores. O que eu pessoalmente faria seria analisar o código com uma ferramente de Profile. Algumas figurinhas carimbadas desse problema seriam pool de Strings ou Class descriptor.

Dá uma olhada nisso também…

[quote=viniciusfaleiro]Concordo com o André… Eu acho que a solução de reiniciar pode ter alternativas melhores. O que eu pessoalmente faria seria analisar o código com uma ferramente de Profile. Algumas figurinhas carimbadas desse problema seriam pool de Strings ou Class descriptor.

Dá uma olhada nisso também…

http://stackoverflow.com/tags/permgen/hot[/quote]

Perfeita a sua colocação e a do André… Na verdade não expliquei o cenário completo e a verdade é que precisávamos de um extintor antes de chamar o Corpo de Bombeiros mesmo…

Na verdade a solução “temporária” precisava ser encontrada e por enquanto está funcionando bem… O Problema já começou a ser pesquisado, quando acharmos o gargalo real eu posto aqui o que causava o problema. Por hora Thread resolvida…

Abs [] e obrigados a todos que dedicaram parte do seu tempo à esse Help…