Tomcat

Connection Pooling Com Tomcat + MySql

tomcatlogoRecebi um e-mail de um amigo meu perguntando se seria possível fazer com que Tomcat gerenciasse um pool de conexões do MySql. A resposta é sim, é possível!

Neste artigo vou demonstrar como fazer esta configuração para que o Tomcat gerencie as conexões do MySQL dentro de uma aplicação de exemplo.

Então vamos começar criando nossa aplicação dentro do Eclipse.

Baixe o projeto completo aqui: Login to view.

Vou criar um novo projeto do tipo “Dynamic Web Project” conforme a imagem abaixo:

SNAGHTMLc5e4d6

Criei um nome meio feio “Tomcat_MySql_Cnn_Pool”, mas você pode colocar o nome que desejar na sua aplicação.

Escolha o target runtime, nome meu caso vou usar o “Apache Tomcat v7.0”. Clique em seguida em Next e iremos para a próxima tela do wizard.

SNAGHTMLc8eb3c

Na tela acima, não fiz nenhuma alteração, mantive os valores defaults. Clicamos então em next e vamos para a próxima tela.

SNAGHTMLce6329

Nesta tela acima, também não vou alterar os valores, mas sinta-se a vontade para fazer as devidas alterações, caso ache necessário. O campo “context root” é o nome da pasta virtual que será criada no tomcat e o context directory é o nome do diretório onde estarão armazenadas as suas páginas. Preferi manter o padrão por questões de comodidade.

Um ponto importante é marcar o “Generate web.xml deployment descriptor”, para que o Eclipse crie o arquivo automaticamente.

Clicamos em Finish para terminar o Wizard e deixar o Eclipse gerar a estrutura do projeto para nós. Dependendo do seu computador, pode ser que demore um pouco.

Se o Eclipse apresentar a mensagem abaixo, diga q sim para que ele continue o processo.

SNAGHTMLd1932e

Podemos ver nosso projeto criado

SNAGHTMLd6b8e6

Vamos dar uma olhada mais a fundo na estrutura que o Eclipse criou para a gente conforme a imagem abaixo:

SNAGHTMLdb6348

Podemos ver que dentro da pasta “WebContent”, temos as pastas “META-INF” e “WEB-INF” conforme imagem detalhada abaixo:

image

Trabalharemos agora na pasta META-INF. Adicionaremos um arquivo XML com o nome de “context.xml” dentro desta pasta. Para isso siga a imagem abaixo:

SNAGHTMLe14ccc

Selecione o arquivo XML e clique em next para cair na página abaixo:

SNAGHTMLe36980

Na tela acima, selecione a pasta META-INF e digite o nome correto do arquivo (context.xml) e clique em next para ir para a próxima página.

SNAGHTMLe52771

Na tela acima clique em finish para completar o procedimento de criação do arquivo XML.

Com este arquivo criado, vamos adicionar o seguinte conteúdo:

SNAGHTMLe9e9e5

Coloquei em Highlight os itens que precisam se alterados, são eles: o nome do pool “NOME_DO_POOL”, o nome do seu banco de dados “BANCO_DE_DADOS”, o usuário do banco de dados “USUARIO” e a senha do usuário  “SENHA”.

Fiz as alterações para minha base de teste conforme abaixo e salvei o arquivo:

SNAGHTMLf0801c

Vamos agora para a próxima etapa do processo, que consiste em alterar o arquivo web.xml que se encontra no diretório “WebContent\WEB-INF”. O arquivo web.xml deverá inicialmente está bastante parecido com o seguinte:

SNAGHTMLf4719b

SNAGHTMLf7c804

O conteúdo acima em highlight deve ser adicionado ao arquivo web.xml e conforme indicado na imagem, o nome do pool de conexão deve ser alterado para o mesmo nome que se encontra no arquivo context.xml.

Este trecho XML adicionado ao arquivo web.xml indica que o pool de conexões está configurado apenas no seu aplicativo, mas que necessita ter a chamada também pela classe de conexões do seu aplicativo.

Um último ponto importante antes de iniciarmos a codificação da nossa página JSP é adicionar a biblioteca JDBC do MySQL dentro da pasta lib do Tomcat que no meu caso se encontra em:

C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.11\lib

SNAGHTML11e9bf6

Vamos agora para a parte final do artigo que é testar para ver se tudo vai funcionar corretamente. Para isso vamos criar uma página JSP (index.jsp) dentro da pasta WebContent.

SNAGHTMLfda3d2

Vamos abrir nosso arquivo criado e adicionar as seguintes linhas de código para testar a conexão:

SNAGHTML1210929

Com nosso arquivo criado, podemos fazer o deploy para o servidor e por fim testar nossa aplicação de exemplo. Se você fez tudo certinho, deverá ver a seguinte página no seu browser:

SNAGHTML124239c

Se gostou do artigo, clique em “Curtir” no início da página!

Qualquer dúvida é só entrar em contato!

Márcio Pulcinelli @ OminaVincit!