|
View:
New views
6 Messages
—
Rating Filter:
Alert me
|
|
|
AppServer penduraPessoal,
Tenho uma aplicação web que de vez em quando pendura o appserver (JBoss 4.2.1). O problema acontece somente no ambiente de produção. Essa instância do appserver roda somente essa aplicação. Uso a JDK1.5.0. Tenho outras instâncias de JBoss com outras aplicações no mesmo servidor e todas funcionam muito bem. O estranho é que o appserver não responde HTTP, não executa nenhum timer (Quartz) e não mostra nenhuma Exception. Não é problema de memória (monitoramos isso ativamente). Aparentemente todas as threads trancam! A única maneira de derrubar é com um kill -9. Colocar um profiler no ambiente de produção é complicado mas seria a última opção. Teria que ficar com o profiler pendurado por dias até ocorrer o problema. De que forma eu poderia identificar ou isolar o problema? Idéias? ------------------------------------- Eduardo Bobsin Machado |
|
|
Re: AppServer penduraTente usar o jstack ou o jconsole para ver onde as thread estão paradas (eles inclusive conseguem
detectar deadlocks). Monitore também o consumo de recursos (CPU, memória) do processo utilizando algum utilitário (no Linux tem o "top"). Se você utilizar o banco de dados faça a mesma observação no host do banco. att. Ivan 2009/10/29 Eduardo Bobsin <eduardo.bobsin@...> Pessoal, |
|
|
Re: AppServer penduraem 99% dos casos isso é sintoma de servidor esperando recurso.. o caso
clássico é um código que abre conexões com o banco e não fecha.. quando a aplicação esgota o número de conexões, a próxima requisição fica esperando uma conexão que não está disponível.. pode demorar até o timeout do banco.. o mesmo sintoma se aplica a qualquer recurso, como JMS, JavaMail, etc.... Dica: use uma ferramenta para monitorar o numero de conexões no banco de dados...... se não for isso, parta para o profile completo da aplicação.. * mas sempre é o banco :) ** o JDK 7 vai resolver este problema, finalmente.. 2009/10/29 Ivan Aguirre <ivan.aguirre@...>: > Tente usar o jstack ou o jconsole para ver onde as thread estão paradas > (eles inclusive conseguem > detectar deadlocks). > > Monitore também o consumo de recursos (CPU, memória) do processo utilizando > algum utilitário (no Linux tem o "top"). Se você utilizar o banco de dados > faça a > mesma observação no host do banco. > > att. > > Ivan > > 2009/10/29 Eduardo Bobsin <eduardo.bobsin@...> >> >> Pessoal, >> >> Tenho uma aplicação web que de vez em quando pendura o appserver (JBoss >> 4.2.1). >> O problema acontece somente no ambiente de produção. >> Essa instância do appserver roda somente essa aplicação. Uso a JDK1.5.0. >> Tenho outras instâncias de JBoss com outras aplicações no mesmo servidor e >> todas funcionam muito bem. >> >> O estranho é que o appserver não responde HTTP, não executa nenhum timer >> (Quartz) e não mostra nenhuma Exception. Não é problema de memória >> (monitoramos isso ativamente). Aparentemente todas as threads trancam! A >> única maneira de derrubar é com um kill -9. >> >> Colocar um profiler no ambiente de produção é complicado mas seria a >> última opção. Teria que ficar com o profiler pendurado por dias até ocorrer >> o problema. >> >> De que forma eu poderia identificar ou isolar o problema? Idéias? >> >> ------------------------------------- >> Eduardo Bobsin Machado > > -- Looking for a client application for this service: http://fgaucho.dyndns.org:8080/arena-http/wadl --------------------------------------------------------------------- To unsubscribe, e-mail: enterprise-list-unsubscribe@... For additional commands, e-mail: enterprise-list-help@... |
|
|
Re: AppServer penduraFaça como o Ivan disse: use o jstack no pid do processo do jboss travado. Isso vai fazer um print em cada stack de cada thread, e vc pode analisar onde estah o bloqueio.
Abs, JV -- julioviegas.com 2009/10/29 Ivan Aguirre <ivan.aguirre@...> Tente usar o jstack ou o jconsole para ver onde as thread estão paradas (eles inclusive conseguem |
|
|
Re: AppServer penduraIvan,
Obrigado pela dica do jstack! Já estou dando uma olhada. Pelo que vi não é problema de memória ou de processamento. Felipe, Não são conexões de banco esgotadas. Também monitoro isso (e muito mais). Uma thread esperando por conexão com o servidor de mail ou com o banco trancaria até a tela de login? :/ Quanto às versões de SDKs, há poucos dias foi decidido que todos os projetos da JBoss devem partir para a JDK6! Portanto, eu não adotaria a JDK7 tão cedo. Acredito que ambientes de produção não são cenário para early adopters... :) Obrigado, ------------------------------------- Eduardo Bobsin Machado 2009/10/29 Felipe Gaúcho <fgaucho@...> em 99% dos casos isso é sintoma de servidor esperando recurso.. o caso |
|
|
Re: AppServer pendura> Uma thread esperando por conexão com o servidor de mail ou com o banco trancaria até a tela de login? :/
Depende da configuração, mas normalmente quando está esperando recursos o servidor não responde mais :) O jeito é usar um profiler e sair rastreando o problema... --------------------------------------------------------------------- To unsubscribe, e-mail: enterprise-list-unsubscribe@... For additional commands, e-mail: enterprise-list-help@... |
| Free embeddable forum powered by Nabble | Forum Help |