[firebase-br] Conexao Persistente vs Nao Persistente.

Douglas Tosi douglasht em gmail.com
Qua Jun 10 10:36:13 -03 2009


2009/6/10 Igor Boaventura <igorbgcampos em gmail.com>:
> entao eu pergunto a voces: qual e a melhor jeito de usar a conexao ?
> persistente ou nao persitente?
> na minha opiniao eu ainda prefiro a persistente pois eu nao tenho que
> conectar no banco toda hora e de acordo com que eu andei pesquisando a
> conexao fica amarrada a um unico thread no servidor isso diminiu sobrecarga
> no mesmo. oque voces acham?

Depende do que sua aplicação está fazendo.
Se a sua aplicação faz uso intenso da base de dados (ex.: não passa
mais de 1 minuto sem trocar uma figurinha com a base), faz mais
sentido manter a conexão aberta.
Mas se ela acessa a base só de vez em quando e passa um bom tempo
trabalhando sem usar a conexão, você pode querer desconectar para
liberar recursos no servidor.
Se você está usando ClassicServer (ou o SuperClassic do 2.5), vai
perder o benefício do cache entre uma conexão e outra. Isto pode
elevar bastante o consumo de I/O no servidor. Mas se você está usando
o SuperServer, onde o cache é compartilhado, não faz diferença.
Leve em conta também que estabelecer uma conexão consome recursos do
servidor. É preciso autenticar o usuário, alocar recursos para a
conexão, etc. Não dá pra querer fazer 20 conexões por segundo em cada
client, por exemplo.
Quando uma conexão é fechada, todos os cursores abertos são fechados
também. Se a sua aplicação é duas camadas e mostra dados em um grid,
por exemplo, quando fechar a conexão os dados vão sumir. É preciso que
sua camada de conectividade dê suporte a manter os dados mesmo quando
a conexão foi fechada.

Como em tantas outras coisas, não existe uma única resposta correta.
Você tem que avaliar o cenário da sua aplicação e pesar os prós e os
contras.

Eu já fiz sistemas que passavam dias conectados. E outros que
desconectavam após 5 minutos de inatividade. Eram requerimentos e
ambientes diferentes. Cada caso é um caso.

Boa observação do Magno. Independentemente da sua escolha quanto a
persistência da conexão, assegure-se de que o controle de transações
está correto.

hth,
-- 
Douglas Tosi
www.sinatica.com




Mais detalhes sobre a lista de discussão lista