Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline
Prezados;
Aderi recentemente à utilização de um singleton para tratar a conexão com o banco de dados.
Hospedei recentemente um sistema num servidor onde o SGBD tinha um 'timeout' para conexões abertas. Ele então fechava a conexão de seu lado por conta, fazendo com que o singleton retorne uma instância de conexão sem referências gerando uma exception (NullPointer no caso, não de conexão com o banco).
Além disso, mesmo funcionando bem em desenvolvimento será que, se um singleton mantém uma conexão aberta o tempo todo, isso não pode causar um vazamento de memória ("leak") no host do SGBD?
Por acaso algum de vcs conseguiram implementar um singleton de conexão de forma segura?
Ou, tem alguma opção (sem ser o singleton necessáriamente) que poupe recursos e garanta segurança?
Membro desde: 25/03/2008 08:18:35
Mensagens: 364
Localização: Por ai...
Offline
Normalmente em aplicaçoes Web, onde existem um numero maior de acesso a conexão simutanea ao banco, seria interssante a utilização de um pool de conexão como o DBCP.
A vantagem é que o Container poderia gerenciar isto, descomplando mais uma funcionalidade que não seria necessario implementar no codigo!
uma outra observação seria, caso utilize este Singleton, faça eles serem sincronizados, seria uma outra solução. Apesar de deixar um pouco mais lenta a chamada a este metodo!