PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Native MySQL Access Error 22 MySQL server has gone away
Native MySQL Access Error 22 MySQL server has gone away
Iniciado por jdres, 09,sep. 2010 08:48 - 9 respuestas
Publicado el 09,septiembre 2010 - 08:48
Hi everyone...

Does anybody know how to prevent the following error:
-----------------------------------------------------------
Error at line 11 of Click BTN_Validate process.
HAdd function called.
native MySQL access error.
Error Number = 22

Error returned by <xxxxxx.com> database:
Error Number = <2006>.
Error Message:
MySQL server has gone away

----- Technical Information -----


What happened?
native MySQL access error.
Error Number = 22

Error returned by <xxxxxx.com> database:
Error Number = <2006>.
Error Message:
MySQL server has gone away

Error code: 73001
Level: fatal error (EL_FATAL)
WD55 error code: 3001
-------------------------------------------
I have the connection timeout set to 0 (never time out) yet this happens every time I create new record and add he 8 pictures the record holds.
It seem that MySql native access doesn't keep a persistent connection, how can I make it so?
I can't find anything in the help files...

Help, please!!!!
Publicado el 10,septiembre 2010 - 11:20
Anybody?
Publicado el 03,octubre 2010 - 02:24
Nobody knows the answer?

Anybody?

TIA
Publicado el 04,octubre 2010 - 17:42
Hi Jack

if I remember correctly, this happens because MySQL is set up to
automatically kill any connection where there was no activity in a given
time...

So either you change the settings of MySQL at that level or in your
application, you add a timer that will do something (as light as
possible) every X minutes on the DB

best regards


--
Fabrice Harari
International WinDev, WebDev and WinDev mobile Consulting

More information on http://www.fabriceharari.com


On 09/09/2010 01:48, Jack wrote:
Hi everyone...

Does anybody know how to prevent the following error:
-----------------------------------------------------------
Error at line 11 of Click BTN_Validate process.
HAdd function called.
native MySQL access error.
Error Number = 22

Error returned by<xxxxxx.com> database:
Error Number =<2006>.
Error Message:
MySQL server has gone away

----- Technical Information -----


What happened?
native MySQL access error.
Error Number = 22

Error returned by<xxxxxx.com> database:
Error Number =<2006>.
Error Message:
MySQL server has gone away

Error code: 73001
Level: fatal error (EL_FATAL)
WD55 error code: 3001
-------------------------------------------
I have the connection timeout set to 0 (never time out) yet this happens every time I create new record and add he 8 pictures the record holds.
It seem that MySql native access doesn't keep a persistent connection, how can I make it so?
I can't find anything in the help files...

Help, please!!!!
Publicado el 15,octubre 2010 - 09:07
Hi Fabrice,

THANX for answering!

(I didn't think I get an answer anymore, so I didn't check back anymore until today....)

Since it is one record (having 8 images as binary memos) the insert shouldn't need to be "refreshed".

However, the way I understand your answer, it is MySQL which resets/drops the connection within xxx seconds of inactivity, does that mean I should open and close the connection only during actual database updates?

Also, what happens is this:
When updating the images, the first one is in there, the next ones get "lost". There is only 1 insert command send. Is there a size limit regarding entries that MySQL limits inserts/updates to?



Again, thanx for your time, much appreciated,

Jack
Publicado el 15,octubre 2010 - 17:45
Hi jack

I'm not a specialist of MySQL, so my answer is just a general direction.
It seems to me that the record you are trying to add is too big (either
there is a size limit, or the time needed to upload your 8 images is
just too long). I know that you set it up for no time out, but that is
just on the windev side. have a look at the general mysql settings to
see if there isn't a time out value there that supersedes what you are
requesting

best regards


--
Fabrice Harari
International WinDev, WebDev and WinDev mobile Consulting

More information on http://www.fabriceharari.com


On 15/10/2010 02:07, Jack wrote:
Hi Fabrice,

THANX for answering!

(I didn't think I get an answer anymore, so I didn't check back anymore until today....)

Since it is one record (having 8 images as binary memos) the insert shouldn't need to be "refreshed".

However, the way I understand your answer, it is MySQL which resets/drops the connection within xxx seconds of inactivity, does that mean I should open and close the connection only during actual database updates?

Also, what happens is this:
When updating the images, the first one is in there, the next ones get "lost". There is only 1 insert command send. Is there a size limit regarding entries that MySQL limits inserts/updates to?



Again, thanx for your time, much appreciated,

Jack
Publicado el 16,octubre 2010 - 10:53
Thanx again, Fabrice, for taking the time...

I'll check on the server (not mine, a shared hosted server). If I can, I will set the timeout to longer and try again.

If I figure it out, I'll post it here, so others don't have to go through this...

Jack
Publicado el 23,agosto 2017 - 17:56
Este error puede suceder por dos casos:
1. si esta realizando una conexion a MySql, debe copiar la libreria: Libmysql dentro del directorio "Exe" de la aplicacion
2. Lo otro es porque puede faltar parametros al momento de establecer la conexion, sobre todo cuando se tiene un puerto diferente al estandard de la base de datos. De ser el caso de establecer un puerto diferente, debe especificarlo, ingresando por las conexiones, que las encuentra en el "Analysis". Seleccione la conexion y en la pestaña de: Advanced, ingrese el siguiente parametro: port=5433;
Para este ejemplo, se establece que el puerto de conexion es por el 5433. Al final no olvide colocar el punto y coma ";"
Miembro registrado
14 mensajes
Publicado el 25,agosto 2017 - 18:50
If your insert ends fine then this error is triggered because of bad design of libmysql.dll and wrong or missing closing connection.

If you write hCloseConnectio(mysqlconn) after insert the error will gone.

Keep in mind that ending program also make wrong hCloseConnection if any connection is still opened on closing the app.

Try this:

HOpenConnection(mysqlconn)
EndProgram()


The error will bi triggered!

HOpenConnection(mysqlconn)
HCloseConnection(mysqlconn)
EndProgram()


The error is gone.

If your insert fail, than you must increase max_allowed_packet in /etc/my.cfg on the mysql server machine.



Hope this helps!
Miembro registrado
14 mensajes
Publicado el 25,agosto 2017 - 19:00
Also, you must wait for BTN_Validate to finish insert process because closing the window after validation also automatically close connection if connection is defined and opened in that window.

Best regards!