Connection Pool

4 respostas
V

Estou tendo alguns problemas com conexion pool.
Criei uma classe só para conexão ao Banco(Oracle).

Para cada tabela que vou inserir coloquei numa classe Java separada.
Estou fazendo a interface em JSP e estou utilizando Java Beans.

O problema que cada classe minha acessa a classe se conexão, e cada vez que eu acesso a página JSP ele entra nos Beans de cada classes que estou usando .

E cada vez que ele entra na classe ele cria uma nova conexão no banco.

Gostaria de saber como faço pra esta conexão acontecer apenas uma vez, e na hora de entrar nas próximas classes ele deve verificar se a classe de conexão está instânciada e usá-la da memória.

4 Respostas

M

vansol, pq tu não usa o pool gerenciado pelo container? é só tu setar tuas configurações de acesso ao banco num xml, fazer a pesquisa JNDI pelo DataSource, e dar um getConnection(), no momento em q tu der um close(), ele devolve a conexão pro pool do container… ta usando Tomcat?

V

Estou usando o container da Oracle, OC4J.

Seja mais claro por favor, não entendi muito o que vc falou, estou a pouco tempo programando em Java

U

Matheus,

Vc pode me dar mais dicas de como configurar o pool de conexões no Tomcat?

Entendi o que deve ser feito, mas preciso de mais detalhes, exemplo do xml, etc…

Obrigado,

M

respondendo rapido q to atrasado, hehehehe, vansol, nunca usei OC4J... então não sei se tu vai usar JNDI com ele, mas acredito q sim...

ai ta um exemplo do serverl.xml no tomcat, pra um banco Postgres

<Resource name="jdbc/PostgresDS"  auth="Container" type="javax.sql.DataSource" />
	<ResourceParams name="jdbc/PostgresDS">
	
		<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>		
		<parameter><name>driverClassName</name><value>org.postgresql.Driver</value></parameter>
		<parameter><name>url</name><value>jdbc:postgresql://192.168.17.5:5432/CaseEad</value></parameter>
		
		<parameter><name>username</name><value>postgres</value></parameter>
		<parameter><name>password</name><value>postgres</value></parameter>		
		<parameter><name>maxActive</name><value>20</value></parameter>		
		<parameter><name>maxIdle</name><value>10</value></parameter>				
		<parameter><name>maxWait</name><value>100</value></parameter>				
		
	</ResourceParams>

coloque isso dentro da tag <GlobalNamingResources>

e tu procura ele assim no codigo:

InitialContext context = new InitialContext&#40;&#41;;
Context ctx = &#40;Context&#41; context.lookup&#40;&quot;java&#58;comp/env/&quot;&#41;;
dataSource = &#40;javax.sql.DataSource&#41;ctx.lookup&#40;&quot;jdbc/PostgresDS&quot;&#41;;
Criado 14 de julho de 2004
Ultima resposta 20 de ago. de 2004
Respostas 4
Participantes 3