Autor
|
Tema: Patrón Singlenton y conexión BD (Leído 3,092 veces)
|
gasoft
Desconectado
Mensajes: 25
Solo se que nada Se
|
Hola, Desde hace algunos días tengo una duda sobre el patrón singlenton y si es buena idea utilizarlo para manejar la forma en como llamo cuando requiero realizar alguna transacción con la base de datos PostgreSQL. La duda está relacionada a; cómo se gestionan utilizando este patrón la conexiones que ya se dejaron de usar, es decir si no se cierran en ningún momento o si el Garbage Collector las recicla. Ya que como pueden ver en la clase no hay un método que la cierre algo como closeConnection() . Gracias de antemano por los posibles aportes a esta duda que me embarga. public class bdS { //Instancia estatica de la conexion, sino uno llega a existir /** * * @return Devuelve la instancia unica de Conexion */ //Si la instancia no ha sido creado aun, se crea if (bdS.connection == null) { contruyendoConexion(); } return bdS.connection; } //Obtener las instancias de Conexion JDBC private static void contruyendoConexion() { try { Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://localhost:5432/bd"; bdS. connection = DriverManager. getConnection(url, usuario, clave ); System. out. println("ClassNotFoundException(contruyendoConexion) : " + e. getMessage()); System. out. println("SQLException(contruyendoConexion) : " + e. getMessage()); System. out. println(" Exception General (contruyendoConexion) : " + e. getMessage()); } } }
|
|
|
En línea
|
|
|
|
pianista
|
La mayoría de los gestores las van cerrando si ven que no se usan, osea que tranquilo por eso, salvo que vayas a montar 2000 y lo tires xD
Respecto a si es bueno tener una conexión, pues depende.
Si vas a tener por ejemplo dos partes del programa, donde una es vital que esté conectada y la otra hace conexiones esporádicas, yo le daría una a cada uno para que no se me machaque una, si la otra se cae. Pero es cuestión de gustos y tampoco soy muy experto.
Saludos
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Colaborador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
Usar Singleton o no depende de la arquitectura de aplicacion. Que modulos van a realizar transacciones, cantidad de conexiones, y demas.
NUNCA se depende de lo que pueda llegar a hacer el motor de la base de datos ni de lo que pueda llegar a hacer por debajo la implementacion del conector. Mucho menos se depende de si el garbage collector recicla o no conexiones, lo que haga el garbage collector es irrelevante, es solo una ayuda en cuestion performance que no tiene que influir en el planteo de los algoritmos, caso contrario podes generar comportamientos impredecibles que despues son muy dificiles de depurar.
Lo que se suele hacer con los manejadores de conexion es que dentro contengan un pool de conexiones y que estas se utilicen on-demand. De esta manera obtenes un desempeño mas optimo que abriendo y cerrando las conexiones constantemente ya que esa es la parte que mas trabajo da.
Si es una sola conexion, se cierra cuando la aplicacion la deje de utilizar. Si son multiples conexiones (pool), se devuelve la conexion al pool para que pueda ser reutilizada y se cierra el pool entero cuando la aplicacion ya no requiera conexiones.
Este tipo de teoria basica es importante, porque luego ayuda a la hora de trabajar con frameworks (como por ejemplo Hibernate)
Saludos!
PD: Evitar el hardcodeo en la medida de lo posible, te va a ahorrar muchos problemas.
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Patron MVC con VB.net
.NET (C#, VB.NET, ASP)
|
jhct
|
3
|
8,906
|
25 Junio 2009, 04:49 am
por jguillen
|
|
|
Redes Jazztel...Posible patron?
Hacking Wireless
|
Cleantesdeasso
|
3
|
3,789
|
22 Julio 2010, 20:53 pm
por KARR
|
|
|
patron claves wep O-n-O en valencia
Hacking Wireless
|
sapito123
|
3
|
5,919
|
8 Octubre 2010, 10:01 am
por sapito123
|
|
|
Patrón de bucle
Programación C/C++
|
Krauserv22
|
5
|
4,251
|
20 Enero 2011, 06:36 am
por N0body
|
|
|
Ayuda-Patron Bridge
Java
|
luxferre
|
1
|
2,980
|
1 Mayo 2012, 19:42 pm
por Proteus1989
|
|