Cerrar conexión MySql con TDolphin (Solucionado)
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Cerrar conexión MySql con TDolphin (Solucionado)
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.
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.
Last edited by cmsoft on Mon Nov 08, 2021 8:12 pm, edited 1 time in total.
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Cerrar conexión MySql con TDolphin
en tdolphin,
intenta con esto, y nos comenta por favor:
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:
Code: Select all | Expand
oCon:end()
oCon := nil
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: Cerrar conexión MySql con TDolphin
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
Muchas gracias por la pronta respuesta
Con:
Code: Select all | Expand
oServer:End()
oServer := nil
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
- karinha
- Posts: 7948
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Cerrar conexión MySql con TDolphin
Y asi?
Regards, saludos.
Code: Select all | Expand
oServer:Close()
oConn:Close()
oServer := NIL
oConn := NIL
HB_GCALL( .T. )
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- carlos vargas
- Posts: 1721
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Cerrar conexión MySql con TDolphin
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
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
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: Cerrar conexión MySql con TDolphin
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
Probé como indicó Karinha pero sigue sin matar la conexión.
Seguramente esté haciendo algo mal, voy a revisar más mi código
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: Cerrar conexión MySql con TDolphin
Revisé mi código y sigue sin funcionar.
Agradecería cualquier sugerencia.
Desde ya muchas gracias
Agradecería cualquier sugerencia.
Desde ya muchas gracias
- JoseAlvarez
- Posts: 811
- Joined: Sun Nov 09, 2014 5:01 pm
Re: Cerrar conexión MySql con TDolphin
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.
¿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.
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: Cerrar conexión MySql con TDolphin (Solucionado)
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.
Dado que a todos le funcionaba, profundicé en mi código, y efectivamente tenía un apertura extra que después no cerraba.