Processo morto Jboss

1. Processo morto Jboss

Monique
monique_silva7

(usa Red Hat)

Enviado em 31/10/2016 - 21:19h

Senhores

Utilizo o Jboss 6, e necessito identificar quando o processo esta morto. O problema é assim;

Utilizando o ps aux | grep jboss, o processo esta ativo, consumindo memória, cpu, mas ao acessar a aplicação encontra-se indisponível. Então preciso dar um kill -9 no processo, e start novamente para disponibiliza-lo. Preciso identificar via shell script quando o processo estiver morto, para que automaticamente, meu script, mate o processo e suba novamente.


Um bom começo seria, eu identificar algo no processo para me dizer que o processo jboss mesmo up, esta morto.

Desde já agradeço


  


2. Re: Processo morto Jboss

Filippe
spolti

(usa Fedora)

Enviado em 01/11/2016 - 00:36h

Olá,

Matar o processo e reiniciar de novo não é um bom começo, se ele está consumindo muitos recursos e a aplição está respondendo quando este comportamento é identificado, há várias possíveis causes para este tipo de problema, que são:

- Garbage collection
- Memory leak
- Connection leak (não só com banco de dados, qualquer tipo de conexão.)

Um bom começo seria analisando os stacktraces gerados pela sua aplicação nos logs do jboss para termos um índicio do que possa estar errado.
Além dos logs você também pode gerar o thread dump executando kill -3 PID_JBOSS e o analisando com um aplicativo chamado samurai. Também podes analisar o Heap dump, este é um pouco mais complicado, porém té dá o retrato real da sua JVM no exato momento em que o problema aconteceu, para analisar o heap dump você pode utilizar o MAT (Memory Analizer) disponível neste link: http://www.eclipse.org/mat/


Para identificar o processo de um JBoss AS 7 você pode identificá-lo através desta string: "org.jboss.as.standalone"
Das versões anteriores da versão 7 eu não me lembro exatamente o que o processo contém, mas se tu postar o resultado de um ps rapidamente irei me lembrar.

Para ter certeza que seu JBoss está com problemas seria interessante você realizar um GET na sua aplicação, exemplo:
curl htttp://suaaplicacao:8080/

e se o resultado for diferente de 200 você toma as atitutes necessárias ao seu ponto de vista.


Abs.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts