Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Cómo desconectar una conexión desde C#

Estas en el tema de Cómo desconectar una conexión desde C# en el foro de Mysql en Foros del Web. Hola. Tengo una conexión con MySql pero al enviar la orden Close(), no se cierra la instancia creada en MySQL y cada vez que se ...
  #1 (permalink)  
Antiguo 05/11/2010, 14:38
 
Fecha de Ingreso: septiembre-2009
Ubicación: Cuenca
Mensajes: 57
Antigüedad: 14 años, 6 meses
Puntos: 3
Cómo desconectar una conexión desde C#

Hola. Tengo una conexión con MySql pero al enviar la orden Close(), no se cierra la instancia creada en MySQL y cada vez que se ejecuta un procedimiento que invoca a este conector se acumula el número de conexiones hasta colapsar. ¿Cómo hacer para matar una conexión una vez que ya no me sirva?

Gracias
  #2 (permalink)  
Antiguo 05/11/2010, 18:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cómo desconectar una conexión desde C#

Eso lo tendrías que consultar en el foro del lenguaje, porque el tema de las conexiones de una aplicación no es tema propiamente de MySQL. Es el conector el que maneja la conexión; MySQL simplemente "escucha" y "responde" por medio de un puerto TCP/IP o de un socket.
Lo que si te puedo decir, por experiencia programando aplicaciones que trabajan con MySQL, es que:
- No es buena práctica cerrar y abrir conexiones constantemente dentro de una misma sesión de trabajo.
- Que cada procedimiento invoque al conector sin verificar si la conexión está activa, es périca práctica.
- El overhead de creación de la conexión es, en muchas ocasiones, superior al tiempo de respuesta de la consulta.
- Las conexiones pueden listarse y matarse dentro de MySQL, pero no todas las conexiones declaradas por la aplicación existen en MySQL. Algunas de ellas son conexiones fantasma.
- La cantidad de conexiones es manejada por el pool de conexiones del sistema operativo y no por MySQL. El hecho de cerrar la conexión no libera los recursos hasta pasado un tiempo, por lo que en un momento dado puede colapsar, pero no porque estén abiertas para MySQL.

Postea tu pregunta en el foro de .Net. Allí te podrán guiar mejor con estos temas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/11/2010, 09:26
 
Fecha de Ingreso: septiembre-2009
Ubicación: Cuenca
Mensajes: 57
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Cómo desconectar una conexión desde C#

Gracias, de todas formas ya lo solucioné al darme cuenta del problema de multiconexiones. Abro una conexión al inicio del programa, y envío su referencia a cualquier parte del mismo para utilizarlo y al salir termino con la conexión.
  #4 (permalink)  
Antiguo 06/11/2010, 10:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cómo desconectar una conexión desde C#


!Esa es la práctica correcta¡
Incluso, podría mejorar aún más si manejas toda la conexión a la base en una sola clase (de paso no tienes que andar buscando dónde demonios está la sentencia que no funciona bien cuando hay un fallo), que instancias en una variable global.
De ese modo no necesitas pasar una referencia, sino que accedes a un sólo objeto que recibe y devuelve los pedidos a la base.
Trata de no incrustar código SQL en diferentes clases, luego se te hace complicado hacer un mantenimiento y las correcciones necesarias.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/11/2010, 10:37
 
Fecha de Ingreso: septiembre-2009
Ubicación: Cuenca
Mensajes: 57
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Cómo desconectar una conexión desde C#

Me has dado una buena idea, excelente de hecho.



Gracias amigo

Etiquetas: desconectar
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 02:37.