Como crear varias conexiones con un mismo driver JDBC?

ipprieto
06 de Julio del 2006
Hola, mi problema es el siguiente:

Estoy desarrollando una aplicaci贸n en Java con Postgres. Para realizar la conexi贸n entre Java y la BD utilizo el driver de postgres para JDBC, de la siguiente manera:

/* Obtener una conexi贸n. */
Class.forName("org.postgresql.Driver");
Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/nombreBD", user, password);

El problema llega cuando conecto varios clientes a la BD, pues al parecer JDBC siempre asigna el mismo objeto Connection para un mismo driver, por lo tanto todos los clientes utilizan el mismo objeto Connection.

Y un mismo objeto Connection no soporta varias transacciones al mismo tiempo, lo que da lugar a inconsistencias y bloqueos cuando varios clientes intentan ejecutar transacciones.

La soluci贸n al problema pasa por obtener un objeto Connection para cada cliente, es decir una conexi贸n distinta para cada cliente.

Alguien sabe como se hace esto? O existe alguna otra soluci贸n para que varios clientes acceden a la BD y ejecuten transaciones?

Espero haber sido m谩s o menos clara en la exposici贸n del problema.

Gracias de antemano a posibles sugerencias.

lepard
06 de Julio del 2006
Es un propuesta, yo creo que lo que deber铆as hacer es crear una cola de peticiones para que se ejecutasen de forma secuencial.

Instaciar como dices una sola vez el objeto conexi贸n, y crear otro objeto que sea peticion. El objeto peticion se guarda en otro objeto cola de peticiones que ser谩 una agregaci贸n de peticones , lo implementas con un vector sino te quieres complicar

la cola de peticiones pueden mantener una instacia est谩tica de conexi贸n para que esta no sea modificada y simule ese funcionamiento.

De est谩 forma todas las peticiones de tus clientes pueden ser atendidas eso si esperando cada uno su turno.

Espero que sea la soluci贸n que buscas.