Performance

Bom dia amigos do guj.

Caras é o seguinte, tenho aqui uma aplicação rodando com Spring + Hibernate + JSF. O caso é que tudo que depende do banco de dados ta insuportavelmente lento. To achando que deve haver alguma coisa de errado com a parte de conexão.
O que posso fazer pra identificar onde é qe ta o gargalo ?

Muito obrigado

Alguem ???

Alguem por favor ???

  1. Use o Visual VM:
    https://visualvm.dev.java.net/

Ele já vem por padrão no Java 1.6.

  1. Se o problema for no banco, procure um profiler específico do seu banco de dados.

Ola,

algumas possiveis causas de sua perca de performance… 1- Verifique se todas as suas conexoes estao sendo abertas e fechadas devidamente… 2- procure usar um pool de conexoes se nao estiver usando, 3- ative o second level cache do hibernate se ja nao estiver usando, tambem vale indicar o query cache, se estiver varias aplicacoes rodando no servidor, verifique o tamanho da memoria que esta sendo liberada para a sua vm rodar.

Abraços

André Martins

Geralmente quando o banco vai ficando lento, pode ser falta de fechamento das conexões ou selects construídos de forma indevida.

Se usar o hibernate, verifique se o EAGER não está sendo usado de forma excessiva.

Então …
Alguem sabe me dizer como configuro o pool de conexões no WebSphere ???
outra coisa, estava aqui com aquele AbstractLazyInitializer Exception, ai coloquei um monte de coisas como EAGER, tem alguma outra maneira de contornar esse problema ?

Muito Obrigado a todos pelas respostas

bom…quanto ao pool de conexões, vc pode fazer no arquivo.propertyes do hibernate usando o c3p0, ai vai um exemplo

hibernate.connection.c3p0.min_size=25
hibernate.connection.c3p0.max_size=100
hibernate.connection.c3p0.timeout=1000
hibernate.connection.c3p0.max_statements=50

quanto ao lazyInitiazerException, isso ocorre se vc tiver dado o commit antes do hibernate for tentar pegar os registros da tabela…ér… da tabela que esta associada a que foram pegos os dados… ao dar o commit ele fecha a conexão automaticamente… disconfio que seja isso, ao invez de abrir a conexão, dar o commit la no seu dao, crie um filtro, abra a requisição antes da solicitação da pagina, e de o commit depois de tudo feito, ja que você ta usando o JSF da uma pesquisadinha em PhaseListener

[quote=maior_abandonado]bom…quanto ao pool de conexões, vc pode fazer no arquivo.propertyes do hibernate usando o c3p0, ai vai um exemplo
[/quote]

Em ambiente de produção não é aconselhado usar o pool do hibernate. Na documentação indica usar apenas para testes. O mais correto é usar via container.

[quote=maior_abandonado]bom…quanto ao pool de conexões, vc pode fazer no arquivo.propertyes do hibernate usando o c3p0, ai vai um exemplo

hibernate.connection.c3p0.min_size=25
hibernate.connection.c3p0.max_size=100
hibernate.connection.c3p0.timeout=1000
hibernate.connection.c3p0.max_statements=50

quanto ao lazyInitiazerException, isso ocorre se vc tiver dado o commit antes do hibernate for tentar pegar os registros da tabela…ér… da tabela que esta associada a que foram pegos os dados… ao dar o commit ele fecha a conexão automaticamente… disconfio que seja isso, ao invez de abrir a conexão, dar o commit la no seu dao, crie um filtro, abra a requisição antes da solicitação da pagina, e de o commit depois de tudo feito, ja que você ta usando o JSF da uma pesquisadinha em PhaseListener [/quote]

então cara, eu nem to dando commit não, isso quem faz é o Spring. esse erro dava quando eu fazia um simples select.
Usando Spring, onde eu coloco essa configuração do c3p0 ?

com o spring eu ja não sei… não uso ele

vi ali em cima que vc falo que estava usando o hibernate, então eu passei como fazer com ele, de repente ja resolvia seu problema logo(ja que bemmenos gente participa dos foruns no final de semana…).

se tem que ser usando o spring eu passo…rs

de qq forma muito obrigado pelas respostas.

alguem mais ??? rsrsrs