| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2002 17:25:26
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
Fiz um pool SIMPLERRIMO, e os dois metodos principais sao o getConnection e o releaseConnection.
Fiz testes concorrentes, com 3 threads de 800 queries cada. Mas voce sabe como eh, teste de concorrencia pode passar batido, e um dia da pau. Alguem me ajuda a achar algo?
Pra deixar claro, releaseSignal eh apenas um mutexiznho. connections guarda as conexoes do pool atual, e allConections guarda todas, as usadas e nao usadas.
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2002 05:30:06
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
entao paulo, o codigo nao parece ter coisas erradas....
o seu metodo de devolver uma connection nao checa se a connection faz parte da sua pool ou nao, o q pode acontecer:
alguem fazer uma conexao de outra maneira (ou mesmo com uma outra connection pool) e devolver, por erro, para a tua connection pool, isto eh: sua conection pool vai ficar com uma conexao errada la dentro e pode devolver ela pra alguem que nao quer uma conexao errada.
Sem contar que se alguem fizer isso (por erro o umaldade pra dar o bug do teu codigo) vc podera acabar tendo uma connection pool com mais connections q o maxconnections ja que ele nao eh testado na hora de devolver.
Pra resolver isso eh manter uma pilha de connections livres e outra de connections usados. Quando um usado eh devolvido, voce verifica se ele esta na de usados, se estiver, retira e joga na de nao usados.
Outra coisa, pra fazer um teste serio, cria uma servlet q faz as 800 queries e cria um html com 2 elevado a 64 frames (facil de fazer) que abre a servlet..... e faz a conta de quantos queries estarao sendo feitos....
Foi assim q testei meu codigo
Gui
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2002 07:11:40
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
É verdade.
Mas basta dar um if(allConnections.contains()) antes de adiconar na pool novamente, ou soltou uma excecao.
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/09/2011 20:34:59
|
b.ambrozio
HelloWorld
Membro desde: 16/06/2009 14:46:07
Mensagens: 10
Localização: Brasil - São Paulo / SP
Offline
|
rs.. Sei que este post é bem velhinho, mas você tem este código completo?
É exatamente o que estou precisando neste momento, um connection pool simples, sem dependencias...
Não entenidi a parte do releaseConnection()
Abraço!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2011 12:13:09
|
pedroabs
Debugger
![[Avatar]](/images/avatar/cccb7f7cfe7acc3641e17927f820c159.jpg)
Membro desde: 08/12/2008 13:33:12
Mensagens: 62
Localização: São Paulo
Offline
|
Implementei a minha Connection Pool:
http://pedroabs.wordpress.com/2011/09/27/connection-pool-em-java-pool-de-conexoes/
|
MCP - VB6
SCJP / OCJP 6
-----------------------------
pedroabs.wordpress.com
http://twitter.com/pedroabs |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/09/2011 12:31:16
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Ficou bom, parabéns! Vou testar quando tiver um tempo.
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
|
|