Page 1 of 1
Cerrar conexión MySql con TDolphin (Solucionado)
Posted: Wed Nov 03, 2021 3:12 pm
by cmsoft
Estimados:
Tengo un sistema que hace la apertura de una base de datos que uso para configuración, y luego la cierro para abrir otra.
El problema que estoy teniendo es que, aunque hago un End de la primera conexión, en la base de datos me sigue mostrando (con SHOW PROCESSLIST) que la conexión sigue activa.
Esto hace que la cantidad de concurrencias en la base de datos se multiplique por dos, y que alcance el máximo definido en max_connections.
Como puedo hacer para matar dicha conexión?
Desde ya muchas gracias.
Re: Cerrar conexión MySql con TDolphin
Posted: Wed Nov 03, 2021 4:03 pm
by carlos vargas
en tdolphin,
static HB_GARBAGE_FUNC( MYSQL_release )
{
void ** ph = (void **) Cargo;
/* Check if pointer is not NULL to avoid multiple freeing */
if( ph && * ph )
{
/* Destroy the object */
mysql_close( (MYSQL *) * ph );
/* set pointer to NULL to avoid multiple freeing */
* ph = NULL;
}
}
intenta con esto, y nos comenta por favor:
Re: Cerrar conexión MySql con TDolphin
Posted: Wed Nov 03, 2021 4:23 pm
by cmsoft
Carlos:
Muchas gracias por la pronta respuesta
Con:
No la mata a la conexión.
Por ahí te interprete mal, HB_GARBAGE_FUNC como la llamo?
Esa funcion veo que esta en function.c de dolphin, pero no la llama en ningun lado al hacer End
Re: Cerrar conexión MySql con TDolphin
Posted: Wed Nov 03, 2021 6:44 pm
by karinha
Y asi?
Code: Select all | Expand
oServer:Close()
oConn:Close()
oServer := NIL
oConn := NIL
HB_GCALL( .T. )
Regards, saludos.
Re: Cerrar conexión MySql con TDolphin
Posted: Wed Nov 03, 2021 8:44 pm
by carlos vargas
la idea de las funciones garbage, es que son llamadas cuando el programa entra en idle, y se ejecuta al recolector de basura, ahi las variables a nil, son procesadas.
ahi es cuando se llama la función mysql_close, para el caso de la variable que contiene la conexion. es cuando se cierra la conexión.
de ahi que karinha haga el llamado a hb_gcall, obligando al recolector de basura de harbour a ejecutarse inmediatamente, y no hasta que el programa este en idle.
Mil Gracias karinha, eso es lo que me faltaba.
salu2
Re: Cerrar conexión MySql con TDolphin
Posted: Wed Nov 03, 2021 10:16 pm
by cmsoft
Gracias por las respuestas y aclaraciones.
Probé como indicó Karinha pero sigue sin matar la conexión.
Seguramente esté haciendo algo mal, voy a revisar más mi código
Re: Cerrar conexión MySql con TDolphin
Posted: Mon Nov 08, 2021 4:05 pm
by cmsoft
Revisé mi código y sigue sin funcionar.
Agradecería cualquier sugerencia.
Desde ya muchas gracias
Re: Cerrar conexión MySql con TDolphin
Posted: Mon Nov 08, 2021 5:10 pm
by JoseAlvarez
Hola César, Saludos..
¿Será que en algún momento tienes dos conexiones con la misma variable?
Yo no he tenido problemas con el END, y mi forma de trabajar es Conectar, Hacer, Desconectar o sea que conecto y desconecto constantemente.
Es una idea, trata de descartarla.
Re: Cerrar conexión MySql con TDolphin (Solucionado)
Posted: Mon Nov 08, 2021 8:13 pm
by cmsoft
Gracias a todos por su interés.
Dado que a todos le funcionaba, profundicé en mi código, y efectivamente tenía un apertura extra que después no cerraba.