| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2008 22:06:41
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
Pessoal tenho uma aplicação spring + hibernate + jsf, onde depois de umas 10 chamadas o tomcat me gera este erro dizendo que o pool de conexão esgotou, e o postgresql diz ter muitos usuários conectados.....
uso o spring para gerenciar o hibernate, e o jndi que utilizo já alterei parâmetros mas nao adianta..
já alterei isso:
agora aqui: diz tamanho de 20, mas nao especifiquei, seria no caso o padrão como altero....
mas minha dúvida é: se somente eu estou usando a aplicação, porque ele está excedendo, no caso o spring ta falhando
vlw
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2008 22:58:18
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Primeiro, você não está usando um pool, o hibernate está carregando o DriverManagerConnectionProvider, e segundo, esse erro acontece quando você esquece de fechar as conexões.
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2008 23:38:32
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
Maurício Linhares wrote:Primeiro, você não está usando um pool, o hibernate está carregando o DriverManagerConnectionProvider, e segundo, esse erro acontece quando você esquece de fechar as conexões.
mas sobre as conexões, por exemplo um método de minha DAO:
por exemplo em todas eu uso sempre o em.flush(); isso não seria o suficiente...
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2008 23:57:06
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Não, você tem que dar close em todas elas, oras.
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2008 00:17:24
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
Maurício Linhares wrote:Não, você tem que dar close em todas elas, oras.
achei que o spring faria isso... achei que a parte que está configurada pro EntityManager incluia ele fechar...
quanto ao flush() pensei um e falei outro, eu ia dizer close() mesmo, porém não eu fazendo e sim o spring, pois até então eu achei que ele estaria realizando isso...
mesmo eu não colocando explicitamente, minha concepção é de que o spring fazia o em.close(), pois ele que está gerenciando a Manager...
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2008 00:21:09
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Javabuntu wrote:quanto ao flush() pensei um e falei outro, eu ia dizer close() mesmo, porém não eu fazendo e sim o spring, pois até então eu achei que ele estaria realizando isso...
mesmo eu não colocando explicitamente, minha concepção é de que o spring fazia o em.close(), pois ele que está gerenciando a Manager...
Ele tá gerenciando o que? Você definiu o controle de transações? Configurou aonde? Tem o filtro de requisições configurado?
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2008 00:29:23
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
está configurado isso no applicationContext:
e estes dois listener pra poder tratar minhas requisições no jsf......
e este correspondente no faces-config:
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2008 00:49:21
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Até onde eu sei, isso não é o suficiente, você tem que configurar o OpenEntitymanagerInViewFilter (assim como agente configurada o do Hibernate) -> http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/orm/jpa/support/OpenEntityManagerInViewFilter.html
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2008 09:01:28
|
agodinhost
Virtual Machine Man
![[Avatar]](/images/avatar/b8ffa41d4e492f0fad2f13e29e1762eb.jpg)
Membro desde: 28/03/2006 21:19:16
Mensagens: 590
Localização: RJ, Tijuca
Offline
|
Maurício Linhares wrote:Não, você tem que dar close em todas elas, oras.
desculpe a ignorância, mas vc quer dizer "fechar as conexões" utilizando o EntityManager (em) certo? até onde sei, na verdade, não estamos realmente fechando as conexões, mas sim informando ao EntityManager que não precisamos mais delas (se fechássemos realmente as conexões não haveria o porquê do pool).
Me corrijam se estiver errado.
Woody
|
"The difference between theory and practice is that, in theory, there is no difference between theory and practice". |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/05/2009 15:51:30
|
mateusprado
JavaEvangelist
![[Avatar]](/images/avatar/b7e2588d3cbee971f93dd87308720d90.jpg)
Membro desde: 26/02/2008 07:20:38
Mensagens: 412
Localização: Araraquara, SP
Offline
|
agodinhost wrote:
Maurício Linhares wrote:Não, você tem que dar close em todas elas, oras.
desculpe a ignorância, mas vc quer dizer "fechar as conexões" utilizando o EntityManager (em) certo? até onde sei, na verdade, não estamos realmente fechando as conexões, mas sim informando ao EntityManager que não precisamos mais delas (se fechássemos realmente as conexões não haveria o porquê do pool).
Me corrijam se estiver errado.
Woody
Voce esta certo! Apartir do momento que usamos um pool de conexão, ou seja quem ira gerenciar nossas conexoes, não precisamos mais nos "preocupar com fechar uma conexão que nao esta sendo utilizadas. Verdadeiros pools de conexoes, c3p0 por exemplo, possui um parametro,
que verifica de tempos em tempos na quela thread quais conexoes realmente esta e nao sendo usadas e as mata se necessario.
Isso pensando por um lado pode ser muito bom, mas por outro devemos pensar bem ao usa-lo.
[ ]s,
|
Mateus Prado

Caelum Stella
SCJP - Sun Certified Java Programmer
SCWCD - Sun Certified Web Component Developer |
|
|
 |
|
|