Conexoes no swing e na web

A duvida é basica, procurei no tio google e aqui no forum tambm mas nao achei oque queria…
to em duvia ao iniciar uma aplicação com relação a conexão.
qual a melhor maneira de faer a conexao com a base…
tipo

conectar quando o usuario se loga e desconecta quandoo usuario sair do sistema.
ou
só conectar a cada utilização do banco.
tipo conecta…faz o select, alter table, insert e desconecta.
e conecta…e desconecta…

na web acho bom qeu seja da 2º maneira pois pode estourar o limite de conexões do banco.
mas no swing.
á necessidade de fazer isso tambm?

vlw
abraços!

Minha opinião é:
Conecta, insere, desconecta.
Conecta, faz select, desconecta.

Porque:
imagina se o seu sistema estiver em 400 máquinas, e esses 400 computadores estiverem com o sistema aberto e logado. O seu banco iria ficar lento com tantas conexões ociosas.

Mas eu disse isso com relação a uma rede local. Agora vc pensa isso na web! a quantidade de usuários simultâneos que vc poderá ter!

Pense nisso!

foi oque pensei de inicio, mas e se eu soubesse,
vai ter 5 usuarios sempre o resto da vida, (só um exemplo)

seria mais rapido na performance mantento ela aberta?
ou não muda muito?
e é melhor fazer sempre como vc falou?

Bom dia.

O problema de se manter uma conexão “sempre aberta” diz respeito ao Pool de Conexões. Mesmo que a quantidade de usuarios que acessam o seu sistema, simultaneamente ou não, pode estourar este Pool de Conexão, o que seria indesejavél concorda?

Em relação a Desktop, no seu caso Swing, o mais interessante no meu ponto de vista é simplesmente abrir a conexão somente quando houver necessidade, no famoso CRUD (Create, Retrieve, Update e Delete). Em outras palavras, abre a conexão se houver a necessidade de efetuar um comando SQL e após executado o comando fechar a conexão.

Quanto á web, diria para deixar este gerenciamente a cargo de um AS (Application Server). Facilita e muito sua vida, sem falar que sua preocupação com o Pool de Conexão se torna minima, já que todo o gerencimento deste Pool é efetuado pelo AS.

Um AS que utilizo e recomendo é o JBoss. Mas existem muitos outros e isto fica a seu critério.

Abraços! :slight_smile:

[quote=nel]Bom dia.

O problema de se manter uma conexão “sempre aberta” diz respeito ao Pool de Conexões. Mesmo que a quantidade de usuarios que acessam o seu sistema, simultaneamente ou não, pode estourar este Pool de Conexão, o que seria indesejavél concorda?

Em relação a Desktop, no seu caso Swing, o mais interessante no meu ponto de vista é simplesmente abrir a conexão somente quando houver necessidade, no famoso CRUD (Create, Retrieve, Update e Delete). Em outras palavras, abre a conexão se houver a necessidade de efetuar um comando SQL e após executado o comando fechar a conexão.

Quanto á web, diria para deixar este gerenciamente a cargo de um AS (Application Server). Facilita e muito sua vida, sem falar que sua preocupação com o Pool de Conexão se torna minima, já que todo o gerencimento deste Pool é efetuado pelo AS.

Um AS que utilizo e recomendo é o JBoss. Mas existem muitos outros e isto fica a seu critério.

Abraços! :)[/quote]

é… tem a questão do Pool de Conexões tbem!
Tinha me esquecido disso…

Faz sempre como eu e o nel disse.

concordo com nel. Como o sgbd configura o limite de usuários que poderão estar conectados a este deverá haver uma camada que faça o controle, no caso o AS. Fazendo desta forma os problemas serão minimizados quando o sistema se tornar maior.
Att.

pensando nisso, vocês tem razão,
não tinha pensado que seria meio chato cuidar das conexões pra nao estourar e tals…
nunca usei jboss mas, vo tentar.
vlw as dicas ai!