Ubuntu finaliza o JBoss 7.1 automaticamente durante o processamento de um Servlet

Boa noite, galera.

Preciso muito de ajuda pois não sei como resolver este problema.
Ao executar uma requisição de Servlet, o Ubuntu (ou o próprio JBoss) finaliza a execução do JBoss e cai o servidor.
No terminal do Ubuntu aparece o seguinte: “killed”. O log do Jboss não grava nada quando isso acontece.

A linha de código que faz cair é uma conexão com o banco de dados (OrientDB). Testei esta mesma aplicação no meu note e este problema não acontece, porém nesta linha de conexão (quando é executada pela primeira vez), demora de 2 a 4 segundos, mas não finaliza o JBoss como no servidor que estou testando.
Segue abaixo as diferenças entre as máquinas que testei.

1ª (o que acontece esse erro) - Um serviço de Cloud
SO: Linux Ubuntu
Ram: 512Mb

2ª (nesta o problema não acontece. o jboss não é finalizado e a aplicação roda perfeitamente)
SO: Windows XP
Ram: 4GB

A aplicação utiliza CDI, Servlet, Seam extenção CDI.

Ficarei MUITO grato se puderem me ajudar!
Abraços!

Alguma ajuda ai galera?
Será que tenha a ver com o fato do server ter apenas 512Mb de RAM??

Não gera nenhum log?

Como está configurado o Xms e Xmx? Essas confs ficam no JBOSS_HOME/bin/standalone.conf

O Valor default é JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxPermSize=256m

Talvez ele não esteja conseguiindo alocar memória… por que além do JBoss existem outros processos do sistema operacional…

O Erro provável seria…

Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.

Abs

O Sorry dei uma viajada… não sei onde diabos eu li que era na inicialização rsrsrs Esse erro provavelmente ocorreria no start.

Da ultima vez que vi algo parecido com isso tava rolando um EXCEPTION_ACCESS_VIOLATION…

vc tem que adicionar algumas confs na JVM para rastrear o erro.

Talvez ajude…

http://www.javamex.com/how_to_fix.html

jmag, primeiramente agradeço sua colaboração!!

Na verdade o Log não diz nada, o servidor da “killed” e o Jboss é encerrado.
Se eu conseguir adicionar algo na JVM para poder monitor a causa já ajudaria e MUITO.

Para melhor detalhar o problema, é o seguinte:

  • Inicio pelo terminal do meu Cloud (via putty), o seguinte comando: sh standalone.sh e então o servidor sobe.
  • Chamo uma página pelo browser;
  • Dentro dessa servlet, coloquei varios INFO do log4j para poder ver onde exatamente ele para.
  • O terminal (onde está aparecendo a saida do Jboss, fruto do sh standalone.sh) começa a mostrar os INFO do log4j, ou seja, ele começa a executar as linhas do meu servlet.
  • De repente uma linha aparece com : “killed”, e então o JBoos para de processa a servlet e o browser perde conexão com o servidor.

É exatamente isso… ele chega a executar algumas linhas, mas antes de finalizar a servelet inteira acontece isso.
Quando chamo uma servlet bem simples, como por exemplo que só faz o dispatcher para uma JSP esse erro nao ocorre.
Ocorre apenas quando executo uma servlet com mais processamento.

A JVM não para, pois o OrientDB (que é executado também pela JVM) continua funcionando perfeitamente.
Você sabe como tentar monitorar a causa deste problema? alguma forma de gerar um LOG ou algo parecido??

MUITO OBRIGADO!

A Solução seria gerar um dump da memória…

Segue esse tutorial e tenta gerar um dump…

Ai vc pode pegar ferramentas como:

http://www.ej-technologies.com/products/jprofiler/overview.html

ou

http://www.yourkit.com/

para analisar o dump gerado :slight_smile:

Abs

jmag,

Realizei o dump da memória e verifiquei que o jboss era finalizado pelo fato do SO não ter memória disponível.
Fiz o upgrade do Cloud para 1GB de memória e agora está tudo funcionando corretamente!!

Agradeço a ajuda!!

Bacana :slight_smile:

Fica a dica para quem passar pelo mesmo problema né.

Grande Abraço e Feliz 2013.