FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Transacciones manejo correcto
Hola a todos
Tengo un sistema echo en delphi 6 con los componentes IBX y base de datos firebird 1.5 Tengo definida las transacciones read_commited , rec_version , nowait Es la manera correcta de configurarlas , lei por algun lado q es la manera correcta de hacerlos El sistema estaba funcionando bien en un ambiente de de 40 equipos pero a veces se me colgaba y salia al tiempo un mensaje de deadlock , era porq tenia anteriormente configurado la opcion de wait , el mayor problema se me daba en las actualizaciones a inventarios , pero repito muy rara vez Si me pueden guiar se los agradeceria un mundo Nota : cuando utilizo transacciones en cache , al componente Ib le coloco cache en true y lo grabo con este funcion , seguido de un transaccion.commit; function puedocerrarTrans(const Tables: array of TIBDataset; Action: string): Boolean; var I: Integer; //Actualizar: Boolean; begin Result := True; for I := 0 to high(tables) do if Tables[i].updatesPending or Tables[i].modified then begin if Action = 'S' then Tables[i].ApplyUpdates else Tables[i].CancelUpdates; end; end;
__________________
IVAND |
#2
|
||||
|
||||
No he entendido qué problema tienes realmente
Por si acaso, ¿conoces el documento Juan José Rodríguez, todo un clásico en el tema de las transacciones?. |
#3
|
|||
|
|||
Gracias por tu tiempo
En verdad la cosa va asi , anteriormente tenia en las transacciones las acciones tal como te la indicaba pero con la opcion wait ( a veces se quedaba colgada la aplicacion y respondia despues de un par de horas con un deadlock) , ahora estoy cambiando a nowait (recien voy a lanzar el aplicativo a su ejecucion) , mi pregunta basica es basado en su experiencia , q opcion es mejor cuando trabajas con altos volumens de datos (facturas , cuentas x cobrar , cuentas x pagar etc ) , si la opcion de wait o nowait , segun esta escrito en algunos manuales la opcion nowait no espera si fuera el caso de un deadlock y muestra inmediatamente el mensaje de error ,dejando de esta manera al usuario con un mensaje directo en vez de q se quede colgado el aplicativo y me muestre un mensaje un para de horas despues Gracias por su tiempo nota : Si he leido ese articulo
__________________
IVAND |
#4
|
||||
|
||||
Hola IVAND, yo siempre uso 'nowait', aunque deberías revisar tus transacciones, no debe aparece nunca un deadlock.
|
#5
|
|||
|
|||
Si eso es cierto , pero estoy revisando ya todo el aplicativo , he echo pruebas en par de modulos cambiando a nowait ,(Updates , Insert , delete) y todo va bien , en algun lado debe estar mal algo ..... uhhh duro trabajo que me espera
Nuevamente muchas gracias
__________________
IVAND |
#6
|
||||
|
||||
Hay que tener paciencia
Deberias probar desde varios puestos al mismo tiempo haciendo pruebas de trabajo normal e intentar encontrar alguna coincidencia en el momento que ocurra, no sé, por ejemplo, cuando estaba consultando las ventas de un cliente y alguien estaba vendiéndole a ese mismo cliente. (por decir algo). |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
manejo correcto de OnValidate | FGarcia | Firebird e Interbase | 10 | 12-05-2007 20:08:39 |
Correcto uso de transacciones | IVAND | Firebird e Interbase | 5 | 28-11-2005 16:43:15 |
Manejo de Transacciones | takeo | Conexión con bases de datos | 0 | 01-12-2004 05:29:53 |
Manejo de Transacciones | senpiterno | Conexión con bases de datos | 1 | 08-10-2004 15:05:34 |
Como usar las transacciones que es lo correcto | azraelrvg | Firebird e Interbase | 1 | 21-10-2003 23:02:37 |
|