Ver Mensaje Individual
  #2  
Antiguo 27-05-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 27
jachguate Va por buen camino
Cool

Hola DobleSiete.

Cita:
Empezado por DobleSiete
Estoy obteniendo el clásico mensaje de deadlock update conflicts with concurrent update en un programa hecho en Delphi 7 e InterBase 6.5 (usando componentes IBX y ADO)... pero mi caso es algo distinto.
A que te referis con que es algo distinto... ¿distinto de que?

Cita:
Empezado por DobleSiete
Ya he leído bastante al respecto como para saber que es un problema de transacciones... lo que no entiendo es porque en tres máquinas de la oficina tengo ese error, pero en la máquina de mi casa núnca aparece
¿Seguro de haber leido suficiente?

Claro que en la máquina de tu casa, si no hay actualizaciones concurrentes, pues el problema nunca se dará. (ver lo que he subrayado en el mensaje de error de la primera cita).

Si logras simular las actualizaciones concurrentes, seguro que el problema se dará nuevamente. Las técnicas para evitar este problema son, principalmente, hacer las transaccoines tan cortas como sea posible (por ejemplo, usando el caché de actualizaciones y volteando todo a la BD en unos cuantos milisegundos) y hacer que las actualizaciones se realicen en el mismo orden sobre los registros en todos los clientes, con lo que algunos quedarán esperando que finalicen las transacciones de otros, pero se minimiza la posibilidad de deadlocks.

No es normal que una sola aplicación cliente produzca deadlocks solita... siempre que uses una sola transacción dentro de la aplicación. Si hay varias transacciones abiertas, si que la aplicación sola puede hacerse el candadito..


Cita:
Empezado por DobleSiete
Algo realmente curioso es que en la máquina donde el programa funciona bien (ejecutado desde el disco duro) obtengo el mensaje de deadlock cuando lo ejecuto desde una memoria flash USB (un zMate Pen de 256 MB). ¿Alguien podría darme un explicación de este fenómeno?
Sinceramente, no creo que tenga que ver con el origen del ejecutable... seguramente ha coincidido con que en esas ejecuciones ha habido concurrencia de actualizaciones.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita