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

Problema con MySQL - EXPERTOS

Estas en el tema de Problema con MySQL - EXPERTOS en el foro de Bases de Datos General en Foros del Web. Hola a todos: Les cuento del problema que tengo. Trabajo en un proyecto con Visual Basic 6 y MySQL. Tenemos 3 máquinas: Una como Servidor ...
  #1 (permalink)  
Antiguo 08/04/2004, 20:03
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 3 meses
Puntos: 0
Exclamación Problema con MySQL - EXPERTOS

Hola a todos:

Les cuento del problema que tengo.
Trabajo en un proyecto con Visual Basic 6 y MySQL. Tenemos 3 máquinas:
Una como Servidor MySQL y las otras 2 contienen la aplicación Visual Basic que consultan la Base de Datos ...
Tratamos de provocar ciertos problemas que pueden llegar a surgir cuando el Sistema se implemente; e hicimos lo siguiente (debido a que el posiblemente se acceda al Sistema via WAN - Dial-up):
Ejecutamos el programa hasta cierto punto en el que se conecta a la Base de Datos y se inicia una transacción (cnn.BeginTrans) Paramos ahí y deshabilitamos la conexión LAN, por lo que perdemos conexión con el Servidor; por lo que el programa ya no puede realizar el COMMIT de la transacción activa. El programa pasa a la rutina de errores; detiene la ejecución y comunica el error (MySQL Server has gone away) Hasta ahí todo bien. El problema surge cuando al cerrar detecto (por medio de una bandera) que existe una transacción pendiente e intento hacer el ROLLBACK ... no puedo hacerlo porque no tengo conexión con el servidor MySQL ... de todas formas puedo hacer el Set cnn = Nothing.
Lo grave en esto es que la tabla sobre la que trabajé en la transacción que quedó pendiente me queda totalmente bloqueada y no hay forma de volver acceder a la misma sino reiniciando el Servicio de MySQL ... leí todo lo que pude y no encuentro como solucionarlo. Supuestamente hay una variable de las tablas INNODB (las q utilizo):
innodb_lock_wait_timeout
Que espera un tiempo prefijado para desbloquear una tabla en caso de que exista un "deadlock" pero no lo esta haciendo ... La tabla me sigue quedando bloqueada ....
Bueno .... espero que alguien pueda ayudarme ... Se lo agradezco desde ya ...
SALUDOS
  #2 (permalink)  
Antiguo 12/04/2004, 18:59
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 3 meses
Puntos: 0
Un poco mas simple

Lo hagamos mas simple ....

Alguien sabe como puedo hacer que una transacción no quede activa en el servidor ???
Como lo dije ese es el problema principal q tengo. Me queda una transacción dando vueltas forever .... Si no le doy el COMMIT o el ROLLBACK queda ahí para siempre
Nadie conoce una variable de servidor que impida esto ?
Ya prové con:

innodb_lock_wait_timeout
wait_timeout
interactive_timeout

Y no pasa nada ....

POR FAVOR !!! HELP ME !!!
  #3 (permalink)  
Antiguo 13/04/2004, 14:44
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
no he hecho nunca lo que dices, pero buscando encontré esto, que remotamente espero te sirva:

If you have the AUTOCOMMIT mode off and close a connection without calling an explicit COMMIT of your transaction, then MySQL will roll back your transaction.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #4 (permalink)  
Antiguo 13/04/2004, 15:53
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
http://dev.mysql.com/doc/mysql/en/COMMIT.html

http://www.quepublishing.com/article...le.asp?p=23412


Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 09/05/2004, 20:41
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 3 meses
Puntos: 0
Pregunta

Hola a todos. Esto que me dicen es totalmente cierto ....

Cita:
If you have the AUTOCOMMIT mode off and close a connection without calling an explicit COMMIT of your transaction, then MySQL will roll back your transaction.
Cita:
There is only one simple rule when it comes to transactions and that is: If it's not committed, it's not committed. If you are in an open transaction and something bad happens, such as that you detect an error and close your connection, or the server crashes or whatever, what you did in that transaction will never have happened as far as the database is concerned.
Pero esto sucede siempre y cuando la conexion se mantenga activa. Porque el problema que tengo es que provando de desconectar el cable de red (o desactivando la conexion de red) despues de haber iniciado un transacción y haciendo algún cambio a la base de datos (Ej un UPDATE de 1 registro) esa transacción queda activa ternamente en la Base de datos y el registro queda bloqueado en consecuencia. Y no se soliona el problema hasta q se reinicia MySQL.
En el caso de que uno no cierre una conexion o termine abrutamente la aplicación despues de haber iniciado una transacción no se da el mismo problema (siempre y cuando se mantenga la conexión de red). En ese caso la transacción inmediatamente desaparece. Todo esto lo veo desde el MySQL Control Center (INNODB STATUS)
Si alguien saber como solucionar este problema desde ya le agradezco su ayuda.

Saludos

CABEZOTA
  #6 (permalink)  
Antiguo 13/05/2004, 19:40
 
Fecha de Ingreso: enero-2002
Ubicación: Yerba Buena - Tucumán
Mensajes: 259
Antigüedad: 22 años, 3 meses
Puntos: 0
Hola .....

No hay nadie por ahi que haya hecho la prueba que les comenté ??????
Nadie, nadie ?????

Por favor ..... alguien que me saque de la duda. Necesito saber si el problema tiene solución o no ...

GRACIAS
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:31.