Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-12-2003
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
no puedo actualizar una tabla

Hola a todos estoy utilizando ib6 y creo la siguiente consulta de actualización desde el ibconsole

update alumnos
set pago_der = 'S'
where reinscrip = 'S' and baja = 'N'

y despues de 15 minutos sin responder me genera el siguiente error

Deadlock
update conflicts with concurrent update
Statement: update alumnos
set pago_der = 'S'
where reinscrip = 'S' and baja = 'N'

revise mis datos para ver hasta que registro se quedo por si es un error de datos y no hay reguistros modificados, por si este error esta en el primer registro que da la consulta intente sin la clausula where y lo unico que optengo es que se tarde menos en indicarme el error:

Deadlock
Statement: update alumnos
set pago_der = 'S'


este proceso solo lo uso una vez al mes, el mes pasado funciono bien y la unica diferencia es que por petición del cliente tuve que cambiar de lunix a windows 2003.


alguien me puede ayudar porfavos
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita
  #2  
Antiguo 03-12-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

El error parece indicar que hay una transacción no finalizada que ha modificado uno de los registros de alumnos, que tu sentencia intenta modificar. Por eso se genera un conflicto (deadlock).

Si tu aplicación mantiene transacciones abiertas mientras se trabaja con los datos, entonces nadie debería trabajar mientras ejecutas este proceso.

En el caso de que la transacción que provoca el problema, no sea debida a una proceso que ejecute otro usuario y que mantiene una transacción abierta, entonces simplemente para y vuelve a arrancar el servidor, a ver si con eso consigues finalizar esa transacción.

Si aún te da ese error, haz un backup y un restore de la base de datos, para eliminar definitivamente cualquier transacción colgada.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 03-12-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
Un deadlock, el error que te da, se produce cuando existe un conflico de transacciones de escritura. TIenes un mágnifico manual donse se habla de ello en http://www.terra.es/personal2/jrodri...nes-0.2.6.pdf, gracias al compañero kinobi.

A mi me ha pasado alguna vez. Es posible que se halla quedado alguna transacción de escritura sin confirmar por ahí, asi que puedes probar a hacer un backup y luego restore de la base de datos, para que haga una limpieza y cierre las transacciones. Tambien puedes usar la instruccióngfix -commit all -user USUARIO -password PASSWORD basededatos.gdb
__________________
Emilio J. Curbelo
Responder Con Cita
  #4  
Antiguo 03-12-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
Marc, te me has adelantado por un minuto cuando estaba escribiendo el mensaje
__________________
Emilio J. Curbelo
Responder Con Cita
  #5  
Antiguo 04-12-2003
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
Gracias a todos lo que saco en conclusión es que respalde mi base de datos, cierre las transacciones y reinicie mi servidor.
Les comento que con sus comentarios lo que puedo imaginar que es el culpable de este error es que esta semana ha fallado el suministro electrico y los usuarios han perdido información que estaban capturando y supongo que esto provoco que alguna transacion no finalizara.

por favor Voutarks podrias verificar tu enlace ya que me dice que la pagina no funciona y i me interesaria ver ese manual
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita
  #6  
Antiguo 04-12-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Además de respaldar la base de datos, no olvides restaurarla, es el proceso de restaurar el que reconstruye la base de datos. (por cierto, guardate una copia del archivo de datos tal como lo tienes ahora, puesto que a veces no se puede restaurar una base de datos corrupta).

Otra cosa que podrías hacer es cambiar el Interbase 6 por Firebird 1.03. Vas a encontrar muy pocos problemas de compatibilidad (si llegas a encontrar alguno) puesto que són dos bases de datos practicamente gemelas. Pero en Firebird se han solucionado muchos bugs de IB 6.

Además FB 1, trabaja con la caché de escritura desactivada, en cambio en IB 6 está activada, esto aumenta mucho el rendimiento, pero por un problema de Windows, los cambios que se hacen solo te aseguras que pasan en la base de datos cuando se cierra el Servidor. Esto provoca facilmente problemas de corrupción con las caídas de corriente.

NOTA : Prueba primero Firebird 1.03 puesto que seguramente no tendrás que hacer ningún cambio en tu aplicación para que funcione. Si quieres probar Firebird 1.5, tiene bastantes mejoras además de aumentar considerablemente el rendimiento, pero seguramente tendrás que adaptar tu aplicación para que lo soporte.

http://prdownloads.sourceforge.net/f...2.exe?download

Saludos
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #7  
Antiguo 04-12-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
Estoy de acuerdo con Marc, que ultimamente es un evangelizador de firebird

La direccion del manual estaba bien salvo que si te fijas me entró la coma del final como parte de la misma y por eso no funcionaba. Te la doy otra vez:

http://www.terra.es/personal2/jrodri...ones-0.2.6.pdf
__________________
Emilio J. Curbelo
Responder Con Cita
  #8  
Antiguo 05-12-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #9  
Antiguo 07-12-2003
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
quote:
--------------------------------------------------------------------------------
guillotmarc comentó:

Otra cosa que podrías hacer es cambiar el Interbase 6 por Firebird 1.03. Vas .....
------------------------------------------------------------------

Gracias por la sugerencia ya la estaba probando en gran parte por lo expuesto en el hilo sobre
interbase y windows 2003, con respecto a mi problema les comento que realice el respaldo de la base de datos, desinstalé internase, cambie por firebird y a la hora de restaurar la base de datos cambie la extensión .gdb por .fdb, con lo cual como se dice aquí en México (no se en otro país) mate dos pájaros de un tiro logre que mi aplicación fuera un poco mas rápida y la consulta de actualización funciono bien.

Gracias por la dirección Voutarks procurare leer mejor las direcciones y no solo esperar a que funciones cuando las selecciono.
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:09:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi