Está en la página 1de 14

Configuracin y pruebas de pool de conexiones con Tomcat

Qu es Tomcat?
Apache Tomcat (tambin llamado Jakarta Tomcat o simplemente Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems. Es un servidor web (http) y funciona como un contenedor de servlets. Es la implementacin de referencia de las especificaciones de servlets 2.5 y de Java Serves Pages (JSP) 2.1, especificaciones para Java Community Process, usado como servidor web autnomo en entornos con alto nivel de trfico y alta disponibilidad. Dado que Apache Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la mquina virtual Java.

Qu es un pool de conexiones?
Un pool de conexiones es un conjunto limitado de conexiones a una base, que es manejado por un servidor de aplicaciones (Tomcat) de forma tal, que dichas conexiones pueden ser reutilizadas por los diferentes usuarios. Este pool es administrado por un servidor de aplicaciones que va asignando las conexiones a medida que los clientes van solicitando consultas o actualizaciones de datos.

Para qu se usa?
El pool permite tener centralizado y controlado el manejo de las conexiones a la base de datos, ya que el acceso a la misma no se hace desde el cliente, como en una aplicacin en 2 capas, sino que en este tipo de aplicacin el acceso es realizado por el servidor de aplicaciones. Para ello podemos utilizar un pool de conexiones a la base de datos. La cantidad de conexiones abiertas a una base de datos es limitada, dado que consumen muchos recursos del servidor de base de datos, y se requiere memoria y tiempo del procesador por cada nueva conexin. El manejo de un pool favorece la escalabilidad y performance de una aplicacin.

Instalacin de Apache Tomcat 1) Pre-requisitos


a. b. c. d. e. JDK MySQL 5 Eclipse o Netbeans Descompresor (Winrar, winZip, 7 Zip, etc) Notpad++

*Puedes ver la instalacin de estos programas en:


http://www.cjavaperu.com/instalaciones

2) Descargas
a. Descargar el programa en: http://tomcat.apache.org/download-70.cgi b. De acuerdo a nuestro sistemas operativo vamos a realizar la descarga, nosotros usaremos Windows y el ejecutable aunque tambin podemos usar el archivo zipeado:

ZIP Versiones Instalador

c. Descargaremos el instalador, en este caso descargamos el que es para 32 y 64 bits.

3) Instalacin
a. Usando el instalador: i. Ejecutar el instalador

ii. Siguiente

iii. Aceptamos los trminos y condiciones, siguiente.

iv. Dejamos todo por defecto, siguiente.

v. Seleccionamos un puerto por donde oir el servidor, usaremos el puerto 8089 (ten cuidado en no repetir el puerto puede ocasionar problemas, recuerda que cuando instalas Netbeans por defecto este instala Glassfish y tomcat con los puertos 8080 y 8084 respectivamente). Tambin escribimos el usuario y contrasea para la administracin del Tomcat, user: cjava; password: cjavaperu

vi. Aqu nos pide la ubicacin de JAVA(JRE7).

vii. Ubicamos el directorio donde ser instalado, siguiente.

viii. Empezara la instalacin.

ix. Seleccionamos Run Apache Tomcat y pulsamos finalizar.

x. Empezara a correr el Tomcat.

xi. Verificamos la correcta instalacin del tomca abriendo en InicioTodos los programas Apache Tomcat 7 Welcome o escribimos en el navegador: localhost:8089 o 127.0.0.1:8089

xii. Administramos el estado, hacemos click en server Status e ingresamos el usuario y password.

xiii. Si hacemos click en manager app podemos ver la administracin.

4. Ejemplo
Crearemos un ejemplo usando Pool de conexiones a MySQL. Lo que haremos ser: Registrar el Pool en el fichero server.xml Dejar a mano las clases del Driver Crear nuestro servlet Hacer accesible el Pool al servlet Crear la tabla en base de datos

1. Server.xml Lo primero que hacemos, es modificar el fichero server.xml C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\server.xml
<Context path="/tomcat7" docBase="tomcat7" debug="0"

reloadable="true" >
<ResourceParams name="jdbc/cjavaDB"> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value>cjavaperu</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/cjavaBase</value> </parameter> </ResourceParams> </Context>

2. Jar del Driver JDBC Ahora introducimos el Jar del Driver Jdbc de MySQL en el directorio adecuado, creamos la carpeta common dentro de tomcat 7 y la carpeta lib dentro de common de la siguiente forma:
C:\Program Files\Apache Software Foundation\Tomcat 7.0\common\lib\mysql-connectorjava-5.1.21-bin.jar

El jar podemos descargarlo desde: http://dev.mysql.com/downloads/connector/j/


es un comprimido, hacemos click en download, nos llevara a una pgina si deseas te inscribes y si no le das en empezar la descarga:

Despus de descargar extraemos y veremos el jar, luego lo copiamos en la carpeta mencionada:

Quedando as:
C:\Program Files\Apache Software Foundation\Tomcat 7.0\common\lib\mysql-connectorjava-5.1.21-bin.jar

3. El servlet Debemos crear nuestra (poolBaseDatos.java). aplicacin. Creemos nuestro Servlet

import import import import import import

java.io.*; java.sql.*; javax.sql.*; javax.servlet.*; javax.servlet.http.*; javax.naming.*;

public class poolBaseDatos extends HttpServlet { private DataSource fuenteDatos = null; public void init(ServletConfig config) throws ServletException { try { // recuperamos el contexto inicial y la referencia a la fuente de datos Context ctx = new InitialContext(); fuenteDatos = (DataSource) ctx.lookup("java:comp/env/jdbc/cjavaDB"); } catch (Exception e) { throw new ServletException("Imposible recuperar java:comp/env/jdbc/cjavaDB",e); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection con = null; // conexion parcial response.setContentType("text/html"); // retornamos el tipo de respuesta PrintWriter out = response.getWriter();

out.println("Prueba del Pool de Objetos"); out.println("Buscamos tutorial con sentencias preparadas"); try { out.println("Probamos a recuperar conexin"); synchronized (fuenteDatos) { con = fuenteDatos.getConnection(); // cogemos la conexion } if(con == null) { out.println("Error al recuperar la conexion, es nula"); throw new ServletException("Problemas con la conexion"); } out.println("Preparamos la consulta");
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM tutoriales WHERE id < ?"); pstmt.setInt(1,10); // establecemos el entero ResultSet results = pstmt.executeQuery(); while (results.next()) { String id = results.getString(1); String titulo = results.getString(2); out.println("El titulo es " + titulo + " para id " + id + ""); } } catch (Exception e) { out.println("Error al procesar consulta " + e.getMessage()); } finally // pase lo que pase retornamos la conexion { try { con.close(); } catch (Exception e) { out.println("Error en proceso " + e.getMessage()); } } out.println("-Fin-"); // cerramos la respuesta out.close(); // Cerramos buffer } }

4. Descriptor de la Web APP Ahora, necesitamos un fichero descriptor, web.xml


<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>poolBaseDatos</servlet-name> <servlet-class>poolBaseDatos</servlet-class> </servlet> <servlet-mapping> <servlet-name>poolBaseDatos</servlet-name> <url-pattern>/servlet/poolBaseDatos</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <resource-ref> <res-ref-name>jdbc/cjavaDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>

5. La tabla en la Base de Datos Creamos una tabla e insertamos datos

6. Ahora solo nos hace falta desplegar la aplicacin: Por lo que creamos nuestro directorio y copiamos los ficheros C:\Program Files\Apache Software
Foundation\Tomcat 7.0\webapps\tomcat7

Otra solucin es comprimir la estructura anterior en un fichero WAR y dejarlo caer en C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps 7. El resultado:

Resulvelo t Ahora te toca a ti! Crea una web con ms pginas

Trabajo realizado por el rea de sistemas de CJAVA


Para consultas, dudas o asistencia tcnica comunicarse al siguiente correo: o o o soporte@cjavaperu.com sistemas@cjavaperu.com www.cjavaperu.com

También podría gustarte