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 !!
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??
danieldestro
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!
mcampelo
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.
W
wender
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 ?
mcampelo
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).
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).