Conexão com DB - Onde iniciar?

4 respostas
black_fire

E ai galera, blz?

Ontem andei dando uma estuda nas sessions do Java, que é um tesão por sinal, neste ponto me surguiu uma idéia e uma dúvida que eu gostaria de discutir com vcs…

Uma das tarefas que que era o calcanhar de Akiles no desenvolvimento web era a conexão com o banco de dados, não conheço o ASP, mas em PHP cada página que faz um acesso ao banco de dados precisa de uma nova conexão, porém vi que em Java a coisa pode mudar de figura, ou seja, posso ter uma única conexão por session, incluindo o objeto connection ao inicializar uma nova sessão, “ou melhor ainda”, posso ter uma única conexão o com o banco inicializando ela quando o server subir. Ai que está o X da questão…

:?: É aconselhavel eu ter uma única conexão de banco para todos, uma por session ou é melhor deixhar uma por página mesmo?

:?: Isso pode trazer algum problema de performance?

Valeu galera.

4 Respostas

douglasfs

Em aplicações web o recomendado é utilizar um pool de conexões, de uma procurada no forum, pois há bons tópicos discutindo sobre isso

douglasfs

Um bom tópico : http://www.guj.com.br/forum/viewtopic.php?t=4078
Se você utilizar o pool você obtem a conexao na hora que for utiliza-la e quando for fecha-la ela é devolvida para o pool, a performance do pool é melhor pois a conexão com o banco NÃO é fechada, mas é reutilizada

A

Todos os servidores de aplicaões já oferecem um mecanismo de POOL de Conexoes.
Voce deve verificar junto ao seu servidor de aplicacoes como fazer isso.
No meu caso, eu faço um estimativa e depois trabalhos de dimensionamento do POOL de conexoes, para saber com quantas conexoes o pool deve ser iniciado. Por exemplo, dependendo do sistema eu deixo umas 15 conexoes abertas com o banco de dados logo de cara e o numero maximo e minimo do POOL voce tambem pode setar.

Depois que voce criou esse POOL no servidor de aplicacoes, voce vai recuperar as conexoes dele atraver da classe DataSource.getConnection()
assim vc nao estara abrindo uma nova conexao e sim usando uma do POOL.
Ex:

Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/meuPoolDB"); 
Connection conn = ds.getConnection();
// usar a conexao
conn.close()

Quando terminar de usar a conexao, basta usar o conn.close() e voce estara a devolvendo para o POOL e nao a fechando…
:slight_smile:
até!

Carlos_ds_jar

Ei chapa quais são os imports que tem que ser feitos pra utilizar isso?

Criado 14 de setembro de 2003
Ultima resposta 27 de set. de 2008
Respostas 4
Participantes 4