La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8146 - HACER UN POOL DE CONEXION
Autor:  Marc Rodríguez
Como puedo desarrollar un pool de n conexiones contra una base de datos en un web-site?. Utilizamos un driver jdbc:odbc:... (el standar que proporciona el jdk) y necesito ideas de como hacer mas eficaz y fiable el portal:
a) creo 1 conexión por cliente metiendola en la session?
b) creo la conexión justo antes de una consulta o update y
la cierro posteriormente?
c) Creo 1 conexión para todos y la meto en el objeto appli-
cation???

Por favor, comunicadme cualquier opinión o idea que se os ocurra. Gracias por todo de antemano. bye

  Respuesta:  Eduardo Rey
Te creas una clase que tenga una estructura con las conexiones que creas oportunas (5, 10, depende), las dejas todas abiertas, y coando se va ha hacer una conexión en vez de pedirsela al gestor se la pides a tu clase (que ya la tiene abierta), el problema de esta solución viene al gestionar una peticion cuando no hay conexiones libres (cortas la conexión indicando que no puede, le haces esperar, abres otro conjunto de conexiones, ...) la cuestion esta en tenerlas ya abiertas para ganar tiempo. Ten en cuenta que puede que por lo que sea el gestor las cierre, acuerdate de comprobarlas y refrescarlas si las cierra el gestor.

  Respuesta:  Xavi Canal
Nas,

lo mejor que peudes hacer es tener un Vector (ArrayList o lo que sea) con objetos de conexión, a la que un cliente quiere hacer una consulta abres uno de esos y lo usas, no lo cierras. Si otro cliente pide hacer una consulta en la que se usa el mismo login que la anterior le pasas esta misma, si no abres otra ...

Puedes configurar un máximo de conexiones a la base de datos.
Para saber el login de la conexión anterior podrias usar un Hashtable (en vez de un Vector) con la key igual al login y el value al objeto Connection