![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
hola,
mira puede que este guitarreando porque eso lo leí del firebird book hace un tiempo y no lo volví a repasar, pero según tengo entendido si tienes al menos UNA sola transacción abierta por tiempo indeterminado sucede lo que comentas.. y más en un programa corriendo las 24hs como dices.. yo creo que la solución es que TODAS las transacciónes se inicien y terminen en el menor tiempo posible.. (indispensable si el programa corre todo el tiempo desde mi punto de vista).. no se que papel juega esa transacción que dejas todo el tiempo pero tendrías que cambiar la arquitectura de la aplicación para que eso no suceda más.. si tienes el firebird book hay 3 capitulos de transacciones que te explican TODO.. son un poco densos pero realmente indispensables salu2 espero que mi respuesta esté bien encaminada.. |
|
#2
|
||||
|
||||
|
Cita:
Prueba ese programita que has hecho con una modificación. Una vez que te conectes haces commit de la transaccion que se asigna a la base de datos y luego sigues (con los insert). Dime si esto soluciona el problema. |
|
#3
|
||||
|
||||
|
24 horas al año no es demasiado ... todavía te quedan 8736 horas en el ano para apagar la aplicacion
![]() |
|
#4
|
|||
|
|||
|
esta claro
el tema esta claro , mientras tenga una transaccion activa , el resto de transacciones por muy bien que las haya finalizado , se quedan pendientes realmente.
tambien tengo claro , que lo ideal para hacer cualquier operacion sobre la bd , es conectarse , iniciar transaccion , realizar operaciones , finalizar transaccion y desconectarse. lo qe pasa es que esto por la naturaleza de las aplicaciones no siempre es posible, y de serlo para poder llevarlo a cabo hay que realizar trabajo extra. la cosa es que en una aplicación tengo controles enlazados que muestran alarmas, eventos , etc... . la aplicacion (ademas de hacer otras cosas ) como ya he dicho ha de estar siempre en marcha y estas pantallas han de estar siempre mostrandose. y para mostrar todos estos datos he de tener siempre una transacion activa , (ademas d que el usuario puede abrir pantallas y dejarlas abiertas hasta el final de los dias , las cuales tambien usan transacciones) , asi que aqui esta el problema. la solucion ya la se , y es cada x tiempo (digamos 1 hora) , cerrar e iniciar de nuevo las transacciones activas que tenga , sin que el usuario y sin que los controles enlazados que usan esta transaccion se enteren . pero me parece una verdadera chapuza y una perdida de tiempo andar realizando estas cosas simplemente porque sino la base de datos peta con el tiempo. como ya he dicho me parece un fallo muy grave , y no creo que yo haya diseñado la aplicación mal , sino que hay que diseñar la aplicacion cliente de tal forma que aunque se inicien y finalizen las transacciones correctamente , si no se tiene en cuenta , al final la bd acaba corrompiendose . ¿donde se ha visto un SGBD que por que un cliente deje una transaccion abierta , la base de datos acabe corrompiendose ?. en fin que no volvere a usar firebird para proyectos futuros hasta que estos temas no este solucionados realmente. saludos. Última edición por tefots fecha: 12-10-2007 a las 12:35:24. |
|
#5
|
|||||
|
|||||
|
Cita:
Cita:
Cita:
Cita:
Cita:
|
|
#6
|
||||
|
||||
|
Hola , gracias por responder.
Cita:
[/quote] Cita:
Cita:
como bien dices , hay muchas formas de solucionar el problema , pero no habria nada que solucionar si firebird no tuviera dicho problema. Cita:
Escribiendo un poco de código todo puede hacerse , pero los controles gráficos enlazados están para que el programador pierda el menor tiempo posible en esto , dile a alguien que está acostumbrado a usar un dbgrid que para que firebird no se degrade , que use un stringgrid , o mejor aun que lo pinte directamente en el canvas. Como ya he dicho , un sgbd que se degrada porque un cliente mantiene una transaccion activa , no me parece un sgbd serio. independientemente del tiempo que un cliente mantenga una transaccion abierta , fb deberia mantener el performance y la integridad de los datos , y no lo hace. No hay que ser taliban de firebird (que nadie se ofenda) , para un tipo de aplicaciones firebird va muy bien (de hecho llevo usandolo y defendiendolo muchos años) , pero para otro tipo de aplicaciones , es mejor no usarlo (o se si usa , hay que tener en cuenta algunas cosas para que no se degrade). Saludos |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Como cancelar una transaccion? Active Transaction = 0??? | JuanErasmo | Firebird e Interbase | 5 | 07-08-2007 21:40:46 |
| ¡¡¡problemon, Urgente!!! | deivi | MySQL | 2 | 23-03-2007 23:29:22 |
| Error: Transaction is active | Tauro78 | Firebird e Interbase | 1 | 09-02-2007 11:38:38 |
| Error: "SQLConnection: there is no active transaction" | jmlifi | Conexión con bases de datos | 3 | 26-06-2006 18:11:23 |
| Transaction active | cmgenny | Firebird e Interbase | 2 | 31-05-2004 16:38:16 |
|