Pool do TomCat

11 respostas
J

Olá pessoal, configurei o pool do TomCat tranquilamente como em tutoriais, configurei tb o server e o web .xml. Contudo gostaria de saber como faço para obter uma conexão do pool em um javabean da minha aplicação. Pois na página tudo ok, mas se eu quiser pegar uma conexão do pool e em seguida fechá-la no JAVAbean, como eu faço ?

grato, aguardo :slight_smile:

11 Respostas

Rafael_Nunes

O pool que você se refere é o DataSource?

J

exatamente…

Rafael_Nunes
Este é o método que eu utilizo em uma app aqui
/**
     * Método responsável por retornar uma conexão do Pool
     * @return Connection
     * @throws SQLException
     */
    protected Connection getConnection() throws SQLException {

       try{

   //		Obtém o namming context
	    Context initCtx = new InitialContext();
	    Context envCtx = (Context) initCtx.lookup("java:comp/env");

   //		Recupera o objeto Datasource
	    DataSource ds = (DataSource) envCtx.lookup("jdbc/nameDatasource");

   //		Aloca uma conexão no Pool
	    connection = ds.getConnection();

       }catch(Exception e){
         	e.printStackTrace();
       }

	   return connection;

    }

}
J

cara funcionou plenamente… vc nao tem idéia da ajuda que me deu. Tá um filé minha aplicação, nunca vi nada tão rapido… Mas então, e para devolver a conexão ao pool ? basta utilizar o metodo close() ? tanto para o objeto Connection como para o Statement ?

Rafael_Nunes

Exato.
Aì o código que eu uso pra persistência:

try{ connection = getConnection(); stmt = connection.createStatement(); retorno = stmt.executeUpdate(sql()); }catch(Exception e){ throw e; }finally{ stmt.close(); connection.close(); }

E voilá.
A conta para depósito é 100686-0, agência… ;o)

J

cara bicho bem que merecia uma ajuda hehehe… mas espero poder pagar na mesma moeda em breve, te ajudando com alguma dica… valeu mesmo.! tudo ok . !

J

véio, ao concluir a implementação fui fazer algumas verificações e observei que ao configurar o DataSource (pool) no TomCat eu não necessitatei fazer entradas no server.xml e nem criar um web.xml para que ele funcionasse. Isso é realmente preciso ? pois fiquei na dúvida, funcionou direitinho sem eles. Uso o TomCat 5 com MySql 4 .

Abraços,

Rafael_Nunes

O web.xml você precisa sim, se estiver usando alguma IDE geralmente elas já geram-no para você(mas o web.xml é necessário para tua aplicação: mapeamento de servlet, filtros, parâmetros de inicialização, etc. Para o datasource ele não usa o web.xml pra nada creio eu).
Quanto ao server.xml, não precisa fazer nenhuma modificação não, geralmente as informações do datasource eu coloco em :

%CATALINA_HOME%\conf\Catalina\localhost\myApp.xml

Não sou muito fã, e nem é recomendado você ficar fuçando no server.xml.

J

Ok, entendi e foi bem.!
grato mano

:smiley:

E

Bem…

Aproveitando o tópico, gostaria de colocar uma dúvida que tenho.

Pelo que o Rafael Nunes disse, é possível criar um arquivo de configuração a parte do server.xml? Se for possível teria como dar uma explicação rápida.

Pq quando eu criei a configuração do datasource eu criei dentro do server.xml.

Obrigado.

Rafael_Nunes

É bem imples, cria um arquivo com o nome da sua aplicação .xml dentro do diretório:

%CATALINA_HOME%\conf\Catalina\localhost\

O conteúdo dele é basicamente este(aqui já está configurado o conteúdo e o datasource):

<?xml version='1.0' encoding='utf-8'?> &lt;Context workDir="work\Catalina\localhost\in9" path="/in9" debug="2" docBase="D:/Projetos/in9/in9" reloadable="true"&gt; &lt;Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_in9_log." timestamp="true"/&gt; &lt;Resource type="javax.sql.DataSource" description="DB Connection" auth="Container" name="jdbc/dbin9"/&gt; &lt;ResourceParams name="jdbc/dbin9"&gt; &lt;parameter&gt; &lt;name&gt;url&lt;/name&gt; &lt;value&gt;jdbc:mysql://127.0.0.1:3306/dbin9&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;maxIdle&lt;/name&gt; &lt;value&gt;2&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;maxActive&lt;/name&gt; &lt;value&gt;4&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;maxWait&lt;/name&gt; &lt;value&gt;5000&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;driverClassName&lt;/name&gt; &lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;user&lt;/name&gt; &lt;value&gt;root&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;username&lt;/name&gt; &lt;value&gt;root&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;factory&lt;/name&gt; &lt;value&gt;org.apache.commons.dbcp.BasicDataSourceFactory&lt;/value&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;name&gt;password&lt;/name&gt; &lt;value&gt;mysql&lt;/value&gt; &lt;/parameter&gt; &lt;/ResourceParams&gt; &lt;/Context&gt;

See more:
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html

Criado 23 de março de 2005
Ultima resposta 11 de abr. de 2005
Respostas 11
Participantes 3