Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/07/2012, 14:25
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Consulta importante

Hola:

Antes de nada, habría que aclarar si se arranca tu aplicación una sola vez y la usan 50 usuarios (una especie de servidor en el que cada usuario tiene su interfaz de usuario), o si cada usuario va a arrancar su propia aplicación desde su PC y hace sus propias consultas.

Si los 50 usuarios van a hacer esporádicamente consultas a la base de datos o cada uno tiene su propia aplciación, tu método puede ser bueno. Abrir y cerrar una conexión por cada consulta es un proceso costoso, pero puede ser asumible si las consultas son de vez en cuando y no un proceso continuo.

Si las consultas van a ser más frecuentes pero no es fácil que sean simultáneas (cada usuario tiene su propia aplciación, por lo que realmente cada usuario tiene su propia conexión), entonces puedes abrir una única conexión al principio del programa y mantenerla abierta. Necesitas hacer un

syncrhonize(connection) {
código de consulta
}

para evitar que dos usuarios usen simultáneamente la misma conexión. Esto hace que un usuario tenga que esperar a que el anterior termine, pero estamos suponiendo que esa circunstancia no es probable.

Si los 50 usuarios se conectan a la vez en una misma aplicación y se lian a hacer consultas simultáneamente, lo más eficiente es usar un pool de conexiones. Tendrías que bajarte y usar algo como apache commons dbcp, que tiene pool de conexiones ya hecho http://commons.apache.org/dbcp/configuration.html

Más info y algún ejemplo, aquí http://chuidiang.org/content/pool-de-conexiones

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 04/07/2012 a las 14:31