Conexão em Aplicação Web

5 respostas
aeciovc

Ola, gostaria de saber dos mais experientes como vocês fazem as conexões com banco de dados, falo isso relacionado a abertura e fechamento da conexão.

já ouvi dizer que não deve se usar Singleton.

minha dúvida é essa pois tenho tido alguns problemas de lentidão por deixar as conexões abertas numa aplicação Web. como vocês fazem esse tipo de conexão?? estou usando o Pool de conexão, porém tenho enfrentado problemas de lentidão!

5 Respostas

thiago.correa

Configure o container para derrubar as conexões inutilizadas! Consulte o manual do seu servidor para saber como proceder!

yoshikichi

aeciovc:
Ola, gostaria de saber dos mais experientes como vocês fazem as conexões com banco de dados, falo isso relacionado a abertura e fechamento da conexão.

já ouvi dizer que não deve se usar Singleton.

minha dúvida é essa pois tenho tido alguns problemas de lentidão por deixar as conexões abertas numa aplicação Web. como vocês fazem esse tipo de conexão?? estou usando o Pool de conexão, porém tenho enfrentado problemas de lentidão!

Então utiliza um Pool de conexão.

Há varias opção só escolher uma.

http://onjava.com/pub/a/onjava/2006/04/19/database-connection-pooling-with-tomcat.html?page=1

C

Bom dia

Para uma aplicação web é muito recomendado a utilização de Pool de conexões, existem diversas formas de implementar um pool, a mais utilizada e recomendada é utilizar direto no conteiner.

Da uma olhada nesse link http://www.plugmasters.com.br/sys/materias/735/1/Conex%E3o-JNDI-utilizando-container-Tomcat, aqui ensina como configurar um pool no Tomcat.

Falou.

aeciovc
Então utiliza um Pool de conexão.

eu já utilizo Pool de Conexão, mas só isso basta pra que o Contanier não fique cheio de consultas e tal??

falo isso, porque minha aplicação está lenta!

e estou em dúvida quanto ao modelo que montei que é mais o menos assim:

todos os DAO para obterem conexão chamam um método estático como exemplo:

connection = Conexao.getConexao();

e no meu método estático está assim:

if ((conexao == null) || (conexao.isClosed()) )  {
			try { 
				Context initCtx = new InitialContext();
				Context envCtx = (Context) initCtx.lookup("java:comp/env");

				
				DataSource ds = (DataSource) envCtx.lookup("jdbc/aplicacao");

				conexao = ds.getConnection();
				conexao.setAutoCommit(false);
				conexao.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
				
			} catch (Exception ex) { 
				ex.printStackTrace(); 
				}
		}
	
		return conexao;
	}

estou em dúvida se esse é o modo mais correto de se fazer!

tonyam

Estou passando pelo mesmo problema…

minha duvida é quando usar o getConnection().close;
pois se eu utilizar em todos os metodos do DAO no bloco FINNALY, pode ser que
meu método chame outro método que tenha o fechamento da conexão também.

Então eu pergunto quando fechar a conexão?

Criado 23 de abril de 2010
Ultima resposta 23 de abr. de 2010
Respostas 5
Participantes 5