Compartilhar um Pool de Conexões

Pessoal, implementei um pool de conexões e quero compartilhá-lo com todas as minhas aplicações, é possível fazer isso? Implementei a Classe ConnectionPool e coloquei-a, junto com outras classes, em um arquivo .jar

Dentro de uma aplicação(contexto) pego a referência ao pool que implementei com singleton. Suponho que o pool ainda não tenha sido criado, então minha aplicação A cria o pool e o usuará. Tentei fazer com com que minha aplicação B, que está em outro contexto, é claro, usasse o pool criado pela aplicação A, mas pelos testes que fiz a aplicação B está criando outro pool. É possível compartilhar um mesmo pool com todas as aplicações?

Se alguém já viu ou já fez isso e puder me ajudar, vai quebrar o maior galho…obrigado !!

Por que você não usa uma implementação pronta?

Qual e o As ou Web Service que você usa?

Peguei uma na web a adpatei às minhas necessidades. Estou usando o Tomcat 4.0.3. Será que vou ter que implementar um pool por aplicação??

Usa o Pool do próprio Tomcat. Vai te dar menos dor de cabeça.

Você pega o DataSource via JNDI.

Dá uma olhada no site do Tomcat que tem um exemplo de configuração e código. É bem fácil!

Estou fazendo algo parecido no WebLogic. Tenho uma WebApplication utilizando o Pool de Conexões e uma aplicação StandAlone utilizanodo o mesmo pool.

Veja o código abaixo:

protected String url = null;
protected InitialContext getInitialContext() throws NamingException {
		InitialContext ic = null;
		if (url==null) {
			ic = new javax.naming.InitialContext();
		} else {
			Hashtable env = new Hashtable();
			env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
			env.put(Context.PROVIDER_URL, url);
			ic = new InitialContext(env);
		}
		return ic;
	}

Se URL foi setada, busca conexão na URL, se não, busca conexão localmente mesmo.

Você está trabalhando com JNDI e com o Pool de Conexões do próprio WebLogic? No meu caso o pool está implementado em uma classe que peguei na web e adaptei. Será que tem jeito de fazer algo parecido com isso que vc fez? Desculpe minha ignorância, mas não entendi bem o código, será que vc poderia explicar ?

Estou trabalhando utilizando a própria estrutura do WebLogic (JNDI, Pool de Conexões, etc).

No seu caso, não sei como está implementado o Pool de Conexões, mas recomendo que você passe a utilizar o que já é oferecido pelo seu Application Server (TomCat, WebSphere, WEbLogic, WhatEver). :slight_smile:

No caso do WebLogic, preciso fazer um lookup via JNDI para pegar um DataSource e a partir do DataSource, consigo pegar a conexão.

A única coisa que eu fiz foi criar a possibilidade de apontar para uma URL do WebLogic (ex.: t3://cactus:7001). Assim, minha implementação de getConnection() funciona tanto localmente (quando a aplicação está rodando no Application Server) quanto “remotamente” (quando tenho uma aplicação StandAlone não roda sob o WebLogic).

Ok, é que não consegui usar a do Tomcat

Por que? qual a sua dificuldade?