Memory Leak

8 respostas
G

Olá Amigos.

Estou desenvolvendo uma aplicação web onde estou testando o banco H2 com Hibernate e apache-tomcat-6.0.26. O server me dá esperança que vai carregar, porém, o log é algo que nunca vi.
Estou trabalhando em time peguei do svn a última versão, a qual está funcionando 100% em todas as máquinas da equipe, exceto na minha

INFO: Server startup in 1028 ms
02/06/2010 22:18:52 org.apache.catalina.loader.WebappClassLoader modified
INFO: Additional JARs have been added : ‘jfreechart.jar’
02/06/2010 22:18:52 org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
02/06/2010 22:18:52 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: A web application registered the JBDC driver [org.h2.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

Se alguém puder dar um ajuda…

De qq forma obrigado.
Saudações,
Giminiani

8 Respostas

A

oi,

https://issues.apache.org/jira/browse/DBCP-332

talvez seja este o seu caso…

O cara dá uma sugestão de como contornar o caso, vc poderia criar um listener que na hora do shutdonw do servidor execute o deregister

abs

G

Obrigado pela ajuda meu caro André!
Mas não tá tempo nem de digitar a url:http://localhost:8080/context_root

A

oi,

desculpe, não vi escrito que estava funcionando em outras máquinas

então provavelmente deve ser um problema de configuração na sua máquina

:arrow: existe mais alguma mensagem de log além desta? existe log da aplicação por exemplo?

:arrow: como você está fazendo o deploy da aplicação? via admin console? alguma IDE?

:arrow: como você está acessando o datasource? usando JNDI por exemplo?

:arrow: já tentou gerar o .war da aplicação na sua máquina e fazer o deploy em outra máquina? acontece o mesmo erro?

:arrow: a versão do java e do tomcat nas máquinas é a mesma?

:arrow: o CLASSPATH nas máquinas é o mesmo?

:arrow: idem para a versão do driver

A

Além disso que o André falou (verifique o classpath antes de tudo), veja os parâmetros de inicialização do servidor e verifique se você usa o mesmo esquema de pastas do servidor que as outras máquinas (pode ser algum problema no endorsed dirs).

Isso é um problema de classloader… Você não tem nenhum outro driver registrado? Lendo a mensagem, parece que não deu tempo de ‘deregistrar’ um driver que já estava lá (quem sabe o servidor starta, registra e tenta ‘deregistrar’ o driver, quando está subindo - o que me parece estranho). Eu aconselho, pra você entender melhor o porquê desse problema acontecer, a ler o draft da Caleum de classloaders.

De qualquer forma, quando resolver, poste a solução =)

J

Só não entendi o porque do tópico se chamar Memory Leak

A

Acho que isso é um problema de Memory Leak, não é? Ficou registrado no Classloader e não conseguiu ‘deregistrar’ no redeploy da aplicação.
Não é um Memory Leak do C, onde, literalmente, vazam coisas pela memória e explode tudo se não cuidar direito (nada exagerado né uhauhaua).

Se não me engano, a Caelum faz referência ao mesmo termo no draft sobre Classloader hell.

J

Acho que isso é um problema de Memory Leak, não é? Ficou registrado no Classloader e não conseguiu ‘deregistrar’ no redeploy da aplicação.
Não é um Memory Leak do C, onde, literalmente, vazam coisas pela memória e explode tudo se não cuidar direito (nada exagerado né uhauhaua).

Se não me engano, a Caelum faz referência ao mesmo termo no draft sobre Classloader hell.

Pelo que sei Memory Leak acontece quando um recurso começa a se multiplicar e consumir memória não só paginada como a do sistema tmb. Isso foi somente um caso que um mutex resolveria, ou seja, um caso de exclusão mútua.

G

Caros, na verdade, houve um problema na hora de baixar a aplicação do cvs, isso mesmo, nada de svn. Faltavam arquivos que por algum motivo gerou tal erro.
Se me enganei no título da mensagem peço, desculpas e me corrijam, por favor. A idéia não era, sinceramente, gerar polêmica sobre isso.
Bem aproveitando o ensejo, alguém pode me indicar um link, material, enfim, qq coisa que fale profundamente sobre JVM, seu funcionamento detalhado, suas interações…

Obrigado a todos,
Bruno Giminiani.

Criado 2 de junho de 2010
Ultima resposta 5 de jun. de 2010
Respostas 8
Participantes 4