Foros del Web » Programación para mayores de 30 ;) » Java »

Conexion pesistente a la base de datos

Estas en el tema de Conexion pesistente a la base de datos en el foro de Java en Foros del Web. Hola!!! Tengo un sistemita orientado a la web en java pero la conexion a la base de datos la subo y la bajo cada vez ...
  #1 (permalink)  
Antiguo 15/06/2006, 16:33
 
Fecha de Ingreso: septiembre-2003
Ubicación: Morelos
Mensajes: 83
Antigüedad: 20 años, 7 meses
Puntos: 0
Conexion pesistente a la base de datos

Hola!!!

Tengo un sistemita orientado a la web en java pero la conexion a la base de datos la subo y la bajo cada vez que realizo una operaciòn pero me dijeron que eso no era correcto que debia mantener una conexion persistente en la base de datos, suena bastante logico pero la verdad es que no sé como hacer eso, alguien podría orientarme un poco??

Gracias!!
  #2 (permalink)  
Antiguo 16/06/2006, 09:22
Avatar de iceman_cml  
Fecha de Ingreso: diciembre-2005
Ubicación: Rosario
Mensajes: 63
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo

Busca hibernate, hay miles de ejemplos, es un framework
  #3 (permalink)  
Antiguo 19/06/2006, 02:14
 
Fecha de Ingreso: mayo-2006
Ubicación: Barcelona
Mensajes: 3
Antigüedad: 18 años
Puntos: 0
Conexiones a BDS a través de un Pool de conexiones transparente

Hola Luz,

Si la conexión a la Base de Datos la estas realizando a través de la Clase javax.sql.DataSource es perfectamente correcto que subas y bajes la conexión cada vez que realizas una conexión.

Una aplicación Web que accede a un RDBMS (Relational DataBase Management System) remoto establece una conexión física con una BDS. El establecimiento de dicha conexión consume varios recursos como CPU, memoria y un tiempo muy valioso en el momento que el usuario está interactuando con la BDS.

Una aplicación Web realiza un servicio para varios clientes, si el Sitio Web tiene un nivel de impactos relativamente alto es evidente que una sola conexión con la BDS no es suficiente porque mientras un usuario la está utilizando, pueden haber otros usuarios que estén esperando dicha conexión.

Si queremos que un Sitio Web pueda crear más de una conexión a una misma BDS, lo tendremos que hacer nosotros mismos creando y destruyendo conexiones físicas a la BDS. Esto tiene varios inconvenientes
  • en vez de dedicarnos al desarrollo de la lógica de negocio, nos tenemos que involucrar en detalles de bajo nivel de programación de Bases de Datos
  • cada nueva conexión como se ha mencionado anteriormente consume varios recursos
Para solventar estos inconvenientes la versión 3.0 de JDBC nos ofrece un Pool de conexiones o Reserva de conexiones que funciona de forma transparente y no crea un coste adicional a nuestras aplicaciones Web.

Al levantar un Servidor J2EE, automáticamente el Pool de conexiones crea un número de conexiones físicas iniciales.

Cuando un objeto Java del Servidor J2EE requiere una conexión a través del método dataSource.getConnection(), la fuente de datos javax.sql.DataSource habla con el Pool de conexiones y éste le entrega una conexión lógica java.sql.Connection. Esta conexión lógica finalmente es recibida por el objeto Java.

Cuando un objeto Java del Servidor J2EE desea cerrar una conexión a través del método connection.close(), la fuente de datos javax.sql.DataSource habla con el Pool de conexiones y le devuelve la conexión lógica en cuestión.

Si hay una punta de conexiones a la BDS, el Pool de conexiones de forma transparente crea más conexiones físicas de objetos tipo Connection. Si por el contrario las conexiones a la BDS bajan, el Pool de conexiones de forma transparente elimina conexiones físicas de objetos de tipo Connection.

Este es el código básico para conectarnos a una BDS con un Pool de conexiones transparente a través de JNDI

javax.naming.Context ctx = new InitialContext();
dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/Bds1");

Cada vez que necesitamos realizar una operación tendremos que escribir el siguiente código para obtener una conexión lógica

connection = dataSource.getConnection();

Cuando hayamos finalizado la operación entonces cerraremos la conexión lógica con el siguiente código

connection.close();

Para ver imágenes del mecanismo del pool de conexiones y algún detalle sobre las versiones JDBC que soportan esta tecnología puedes visitar la siguiente dirección achetetep://3w.infosintesis.net/apensintesis/bds/jdbc/poolconexiones

Saludos

Ignasi Pérez Valls
infosintesisblog.net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:43.