Monitorando Objetos ativos

5 respostas
Rulio

olá pessoas…

mas uma vez venho postar minhas duvidas.

Estou querendo saber se existe alguma possibilidade de desenvolver o programa que monitore todos os objetos ativos e que tb não estão mas ativos, ou seja, prontos para serem excluídos pelo GC.

O problema que estou é o seguinte:

Tenho uma aplicação rodando no tomcat 5 e que de tempos em tempos é necessário reiniciar o tomcat para que a aplicação volte a funcionar normalmente. Estou com, quase certeza, que isso está acontecendo por conta de algo abertos e que não estão sendo fechados em sua finalização, por exemplo:
ResultSet, PreparedStatement e entre outros.

Já percorrir todo o código fonte em busca de algo aberto, infelizmente não obtive exíto na procura, todos fechados.

Em detrimento disto, estou querendo criar um monitor de objetos.

Peço ajuda dos companheiros nessa dificil batalha contra as forças da JVM.

Abraços.

Rulio Vangellis.

5 Respostas

Luca

Olá

Provavelmente alguma conexão. Monitore também sua base de dados.

Se usa Java 5 ou Java 6, o JConsole serve também para isto sem que você precise alterar nada na aplicação. Basta inicializar com o parâmetro -Dcom.sun.management.jmxremote no Java 5 (no Java 6 não precisa).

Alguns links que podem lhe servir:

http://blogs.sun.com/lmalventosa/entry/mimicking_the_out_of_the

http://java.sun.com/j2se/1.5.0/docs/guide/management/mxbeans.html

http://blogs.boxysystems.com/2007/4/11/tomcat-v5-0-28-memory-leak-exposed

http://e-docs.bea.com/wljrockit/docs50/usingJMC/monitoring.html (Se usa o JRockit)

[]s
Luca

Rulio

opa, estou utilizando java 1.4
Normas da casa :cry:

Luca

Olá

  1. Monitore a base de dados. Se for Oracle, por exemplo, veja as VSessions

  2. Se ainda não usa, passe a usar um connection pool. Provavelmente nesta refatorada, além dos benefícios do uso, o problema deve sumir

  3. Se for possível, monte um ambiente de testes com Java5 (ou Java 6) e use o JConsole como disse antes

  4. Use algum profiler

  5. Diga qual tomcat 5 usa (será aquele do memory leak que lhe passei?)

  6. Diga qual base de dados e tudoo mais que possa ajudar alguém a lhe ajudar.

[]s
Luca

Rulio

tranquilo…

JAVA 1.4;

Banco de dados ORACLE;

Possui pool de conexão;

TOMCAT 4.1 (Tinha falado antes que era o 5)
fabiofalci

Tem o JProfiler. É pago mas é bom… E tem um trial de alguns dias…

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

Criado 3 de maio de 2007
Ultima resposta 3 de mai. de 2007
Respostas 5
Participantes 3