Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2010, 12:06
Avatar de Gguer
Gguer
 
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Duda sobre código Java + Pool de Conexiones + Tomcat 6

Gracias Denis127 por tu ayuda. Justamente eso es lo que ya no quiero hacer, como lo dije en mi entrada. Yo quiero hacer un pool de conexiones, esto es: mantener una conexión para todos los accesos a la base de datos, en lugar de abrir y cerrar conexiones por cada acceso, así como se utiliza tradicionalmente.

Lo quiero hacer con pool de conexiones porque mi aplicación así lo requiere. Pensando en separar la lógica de negocio de la base de datos, es que vengo aquí, porque quiero poner el código de pool de conexiones en la clase que tiene los métodos necesarios para acceder a la base de datos, a parte de los servlets; pero a parentemente ese es el problema que tengo.

El siguiente código es el que había estado utilizando para crear el pool de conexiones, pero dentro de un servlet:

Código CP:
Ver original
  1. public void init(ServletConfig config) throws ServletException
  2.     {
  3.         try
  4.         {
  5.             Context ctx = new InitialContext();
  6.             DataSource fuenteDatos = (DataSource) ctx.lookup("java:comp/env/jdbc/my_bd");
  7.         }
  8.         catch (Exception e)
  9.         {
  10.             throw new ServletException("Imposible recuperar java:comp/env/jdbc/my_bd",e);
  11.         }
  12.     }

Lo anterior va dentro del método init, como se muestra. Ahora les muestro el código que coloco dentro del método doPost o doGet para iniciar el objeto Connection:

Código :
Ver original
  1. try{
  2.        
  3.         synchronized (fuenteDatos)
  4.             {
  5.                 conexion = fuenteDatos.getConnection(); // cogemos la conexion
  6.             }
  7.  
  8.             if(conexion == null)
  9.             {
  10.                 out.println("Error al recuperar la conexion, es nula");
  11.                 throw new ServletException("Problemas con la conexion");
  12.             }
  13. Lo demás que contiene al try, como:conexiones y acceso a registros....

Esto, además de colocar lo que ahora pongo en el archivo context.xml, en el archivo server.xml, sí me funciona muy bien. Lo que no quiero es seguir haciéndolo de esta manera, o sea, colocar la conexión en el servlet.

Espero haya sido claro y seguiré esperando propuestas

Gracias