tdolphin y ping...

tdolphin y ping...

Postby goosfancito » Tue Sep 27, 2016 10:51 am

Hola.
He visto en el manual del mysql y php que haciendo
$oCnx->ping()

se puede verificar si la conexion esta activa/funciona.

Con tdolphin como lo hago?

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: tdolphin y ping...

Postby carlos vargas » Tue Sep 27, 2016 4:40 pm

goosfancito

Contrario a lo recomendado, pero por comodidad a los desarrolladores, ya tdolphin hace el llamado a ping, con cada llamada a ejecucion de una consulta. (ex: oServer:Query( "SELECT * FROM MYTABLE" ) )
ya en el codigo c de la funcion que hace la consulta, se hace una llamada antes a la funcion ping, por lo que en teoria no es necesario que lo hagas.
Code: Select all  Expand view

HB_FUNC( MYSQLPING ) //Zero if the connection to the server is alive. Nonzero if an error occurred
{
   int iPing = 1;
   MYSQL * hMySQL = (MYSQL *) hb_MYSQL_par( 1 );
   
   if( hMySQL )
   {
      iPing = mysql_ping( hMySQL );
   }
   else
   {
      hb_errRT_BASE( EG_ARG, 2020, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );      
   }
   
   hb_retni( iPing );
}

HB_FUNC( MYSQLQUERY )
{
   MYSQL * hMySQL = (MYSQL *) hb_MYSQL_par( 1 );
   
   if( hMySQL )
   {
      if( mysql_ping( hMySQL ) == 0 )
      {
         hb_retnl( ( long ) mysql_real_query( hMySQL,
                   ( const char *  ) hb_parc( 2 ),
                   ( unsigned long ) hb_parnl( 3 ) ) ) ;
      }
      else
      {
         hb_errRT_BASE( EG_ARG, 2020, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
      }
   }
   else
   {
      hb_errRT_BASE( EG_ARG, 2020, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
   }    
}
 

ahora si tu lo desea hacer, pues con hacer oServer:Ping(), listo.
Code: Select all  Expand view

   METHOD Ping()                  INLINE IIf( MySqlPing( ::hMySQL ) > 0, ( ::CheckError(), FALSE ), TRUE )
 

debes tomar en cuenta que si la conexion no esta ok, el tiempo de espera de la llamada a ping esta basado en el timeout configurado, que para el caso de algunos hosting es unos 20 segundo.
lo cual es desesperante. :-/
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1719
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: tdolphin y ping...

Postby goosfancito » Wed Sep 28, 2016 1:10 am

habia visto eso del oserver:ping y lo prove, pero en mi caso esa llamada hace que la aplicacion se quiebre, he leido en el foro que varios comentaron lo mismo,
o sea que el ping no seria lo que yo estoy neecsitando.
paso a comentar que me sucede,

En el trabajo la conexion al mysql es pr medio de red interna,
la aplicacion hace INSERT y UPDATE en una DB, pero
hay veces que se corta la conexion y al momento de hacer la
operacion de INSERT o UPDATE se produce un error del programa,

mi idea era antes de hacer el INSERT o UPDATE chequear que la conexion
este OK. de no estarlo no haria la operacion.

pues puse
Code: Select all  Expand view
if ::oCnx:ping()
,,,,,


y ahi queda un buen rato y en menos de 10 segundos el windows dice APLICACION INESTABLE y
la corta. o sea, que jamas vuelve del ping.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: tdolphin y ping...

Postby MGA » Wed Sep 28, 2016 10:52 am

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1249
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: tdolphin y ping...

Postby carlos vargas » Wed Sep 28, 2016 10:14 pm

haber, goosfancito, reemplaza esta funcion en function.c en tdolphin, y recompila la libreria.
otro asunto, yo para que me funcionara el cambio en el tiemout en caso de perdida de conexion he tenido que usar otra libmysql.dll (la he sacado de mariadb), ya que la original nunca me reconocio el cambio a 10 segundo, pero ya con la dll de mariadb me ha funcionadp bien, por favor nos comentas como te fue para que asi sepamos si te funciono o no.

a mi ya me realiza la reconexion, luego de perdidas de conexion.
salu2
carlos vargas

Code: Select all  Expand view

HB_FUNC( MYSQLCONNECT ) // -> MYSQL*
{
   MYSQL * mysql;
   unsigned int port  = ISNUM( 4 ) ? ( unsigned int ) hb_parni( 4 ) :  MYSQL_PORT;
   unsigned int flags = ISNUM( 5 ) ? ( unsigned int ) hb_parni( 5 ) :  0;
   PHB_ITEM pcbDecrypt = hb_param( 7, HB_IT_BLOCK );  
   unsigned int * iTimeOut= 10;
   BOOL bReconnect = TRUE;
   
   mysql = mysql_init( NULL );
   
   if ( ( mysql != NULL ) )
   {
      mysql_options( mysql, MYSQL_OPT_RECONNECT      , &bReconnect );
      mysql_options( mysql, MYSQL_OPT_CONNECT_TIMEOUT, &iTimeOut   );
     
      mysql_real_connect( mysql,
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 1, HB_IT_ANY ) ) ),
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 2, HB_IT_ANY ) ) ),
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 3, HB_IT_ANY ) ) ),
                          hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 6, HB_IT_ANY ) ) ),
                          port, NULL, flags );
      hb_MYSQL_ret( mysql );
   }
   else
   {
     hb_retptr( NULL );
   }
}  
 
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1719
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: tdolphin y ping...

Postby goosfancito » Wed Sep 28, 2016 11:15 pm

el problema qe tengo con la ultima version de la tdolphin es que cuando se conecta
muestra la ip a donde se conecta, ya busque en los fuentes y la verdad que me perdi,
no se donde ponen ni un ? ni un msginfo pero aparece en la pantalla el IP,
por eso deje de usar los fuentes y volvi a una version vieja, que en esa version tengo
problemas cuando paso un campo (por ejemplo) string y el campo destino es un INT,
no hace la conversion. pero bueno. sos "parches" en mi misma app.

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: tdolphin y ping...

Postby MGA » Fri Sep 30, 2016 10:48 am

Carlos,

Referente:
libmysql.dll (la he sacado de mariadb)

pode me enviar uma cópia da LIBMYSQL.DLL(mariadb)?

obrigado
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1249
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: tdolphin y ping...

Postby carlos vargas » Fri Sep 30, 2016 4:27 pm

Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1719
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: tdolphin y ping...

Postby MGA » Fri Sep 30, 2016 9:11 pm

Carlos,

como lo hace en PRG para probar la conexión a perder y realizar la reconexión?

Gracias
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1249
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: tdolphin y ping...

Postby carlos vargas » Fri Sep 30, 2016 10:03 pm

eso lo hace solo, cuando tdolphin intenta ejecutar un query, y si la conexion esta caida, esta intenta reconectarse.
ahi nosotros no hacemos nada.
eso siempre y cuando reempalzemos la funcion c que expuse anteriormente en los funetes de tdolphin y recompilemos la libreria.

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1719
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: tdolphin y ping...

Postby MGA » Fri Oct 14, 2016 8:24 pm

Carlos, gracias!
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1249
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: tdolphin y ping...

Postby carlos vargas » Sat Oct 15, 2016 3:48 pm

Estimados, solo preguntarles si implementaron el cambio, y si es asi, como les fue.
vamos, un poco de feedback.
:-)
salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1719
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: tdolphin y ping...

Postby MGA » Sun Oct 16, 2016 8:19 pm

Carlos,

com a versão nova da TDOLPHIN, estou enfrentando problemas com CAMPOS NULL.

Como você conseguiu resolver?

gracias,
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1249
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 29 guests