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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-07-2008
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Poder: 0
camino Va por buen camino
Firebird 2 Lock Timeout para wait transacciones

Hola amigos. Hace poco se cumplio un año de mi consulta al foro y, lamentablemente no obtuve una respuesta.

Los antecedentes estan aqui:

http://www.clubdelphi.com/foros/show...+transacciones

y aqui

http://www.clubdelphi.com/foros/show...ghlight=wait+5

Creo que en estos dos hilos estan todos los antecedentes del caso, Realmente me gustaria tener una respusta. Tan simple como que tengo que programar para que resulte.

Desde ya muchas gracias;
Responder Con Cita
  #2  
Antiguo 22-07-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por camino Ver Mensaje
Hola amigos. Hace poco se cumplio un año de mi consulta al foro y, lamentablemente no obtuve una respuesta.

Los antecedentes estan aqui:

http://www.clubdelphi.com/foros/show...+transacciones

y aqui

http://www.clubdelphi.com/foros/show...ghlight=wait+5

Creo que en estos dos hilos estan todos los antecedentes del caso, Realmente me gustaria tener una respusta. Tan simple como que tengo que programar para que resulte.

Desde ya muchas gracias;

Amigo, te doy la vuelta la pregunta, perdon, pero para que alguien querria hilar tan fino?

Las transacciones se manejan fácil si tu sistema esta bien diseñado. Con firebird específicamente, cada vez haces un query rollback a la transacción y cada vez que aplicas un cambio (update, delete) simplemente commit, si algo sale mal rollback.

No hay nada mas ahi.. me parece que te estas complicando inutilmente.
Tengo sistemas funcionando 24 horas por años con estas condiciones y nunca tuve un problema.


Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #3  
Antiguo 22-07-2008
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
Hola

Yo tambien tube tu misma inquietud y el mismo resultado, por lo que lo deje estar, ya que el trabajo diario me hizo olvidar el tema. Por tanto me añado a tu peticion, y decir que a veces es necesario hilar fino, ademas recordaros que los que ya tenemos una edad cuando programamos con clipper este tema estaba solucionado (aunque no sea muy exacta la comparación).

Saludos
Responder Con Cita
  #4  
Antiguo 22-07-2008
Avatar de duilioisola
[duilioisola] duilioisola is online now
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Cita:
He intentado Con FibPlus 6.45 y con el IBX que viene con Delphi 7.
y no he podido setear este modo.
Yo he leido que habrá que esperar a que los que programan los componentes de acceso a FB tengan en cuenta esta característica y la implementen.

Cita:
Timeout intervals are specified per transaction, using the new TPB constant isc_tpb_lock_timeout in the API or, in DSQL, the LOCK TIMEOUT <value> clause of the SET TRANSACTION statement.
Parece ser que se realiza a travez de una nueva API.
Supongo que deberás estar atento a las noticias de IBObjects, FIBPlus, MDO, etc.
Responder Con Cita
  #5  
Antiguo 26-07-2008
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Poder: 0
camino Va por buen camino
Un aporte para analizar

Cuando trataba de utilizar la instruccion 'Lock Timeout' escribi a Devrace FibPlus para ver si de ellos obtenia alguna respuesta. Buscando por ahi la encontre y se la transcribo. Yo no uso FibPlus, asi es que a lo mejor Uds. pueden encontrar la solucion.


Pregunta:

how I can, with FibPlus, execute thenew command LOCK TIMEOUT <value> in transactions with Firebird 2.01.


Respuesta

I think no. You can use property TpFIBTransaction.Timeout and .Timeoutaction, doing lock in the select -sql.


Espero que sea de algun aporte.
Responder Con Cita
  #6  
Antiguo 02-08-2008
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Poder: 0
camino Va por buen camino
Frustracion

Hola amigos.

En principio agradezco la intervencion de celades1 por tener la inquietud de investigar los beneficios de Firebird.

Le pregunto a donald shimoda; para que darse el trabajo una cantidad de profesionales en optimizar Firebird si lo que tiene basta y sobra?

Pues bien, pienso que en la medida que nuestro Firebird sea mejor y mas completo, mas garantias tendran nuestros clientes al usarlo.

Hago un llamado a investigar este hilo y no esperar que vuelva a escribir el proximo año para ver si alguien se interesa.

Gracias.
Responder Con Cita
  #7  
Antiguo 29-01-2013
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Question Firebird 2.1 with lock time out

Hola amigos.

Hola estoy intersado en el tema ya que con esta tecnica puedo bloquear registros temporalmente mientras se termina el proceso y no ser leido por otro usuario. Pero quisera saber si encontro la solucion a contralar el tiempo que toma un registro sin ser leeido para generar error de registro bloqueado y asi poder procesando el siguiente registro

Gracias
Responder Con Cita
  #8  
Antiguo 29-01-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por camino Ver Mensaje
Hola amigos.

En principio agradezco la intervencion de celades1 por tener la inquietud de investigar los beneficios de Firebird.

Le pregunto a donald shimoda; para que darse el trabajo una cantidad de profesionales en optimizar Firebird si lo que tiene basta y sobra?

Pues bien, pienso que en la medida que nuestro Firebird sea mejor y mas completo, mas garantias tendran nuestros clientes al usarlo.

Hago un llamado a investigar este hilo y no esperar que vuelva a escribir el proximo año para ver si alguien se interesa.

Gracias.
Bueno 5 años después veo tu mensaje, no me demore nada. Y? Has sacado grandes beneficios en reinventar la rueda? Compartelo!
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #9  
Antiguo 29-01-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por ASAPLTDA Ver Mensaje
Hola amigos.

Hola estoy intersado en el tema ya que con esta tecnica puedo bloquear registros temporalmente mientras se termina el proceso y no ser leido por otro usuario. Pero quisera saber si encontro la solucion a contralar el tiempo que toma un registro sin ser leeido para generar error de registro bloqueado y asi poder procesando el siguiente registro

Gracias
Amigo, cuéntame un caso de uso exacto por favor, me muero de curiosidad (no estoy siendo sarcástico).
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #10  
Antiguo 29-01-2013
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Smile

Cita:
Empezado por donald shimoda Ver Mensaje
Amigo, cuéntame un caso de uso exacto por favor, me muero de curiosidad (no estoy siendo sarcástico).
Tenemos la fila de espacios disponibles(8000) los cuales seran marcados cuando se venda el numero de silla, existen varios vendedores a los cuales van entregando el numero de espacio a vender

El la casilla de venta 1 se ofrece el espacio numero '"A" el cual POSIBLEMENTE sera ocupado , acto que se confirma en unos pocos segundos o puede demorarse unos minutos (5/10 minutos), en la casilla 2 se ofrece otro espacio que no debe ser el mismo que afresca la casilla 1 , si el registro esta marcado como en proceso de actualizacion el sistema al leer el registro y determinar que esta en proceso de actualizacion salta el registro al vencerse el tiempo de espera para que un registro pueda ser leido.

Para este casa la casilla de venta al leer el registro no efectuo cambio en la base de datos solo ejecuto la accion de FOR SELECT ESTADO FROM TABLA A WHERE ESTADO = LIBRE CON BLOQUEO
La casilla 2 leyo SELECT ESTADO FROM TABLA A WHERE ESTADO = LIBRE CON BLOQUEO y no lee el registro que esta en uso por LA CASILLA 1

y asi sucesiamente.
No Recuerdo en que version de FIREBIRD salido esta herramiento tal vez 2 , yo la he usado en sistema as400 el bloqueo pesimista desde hace mas o menos 30 anos y funciona bien por ejemplo para bloquear cuentas bancarias a las cuales se estan efectuando cambios en el saldo.

Como veo que estas muy interesado en el tema creo que has hecho pruebas detalladas del manejo de bloqueo con esta funcion y debes conocer como hacer para cambiar el tiempo de generacion del error de registro bloqueado que es lo que busco solucionar ya que no se como efectuar la explicacion que hay en el manual (lock time out + set transaction ) en un procedimiento

Agradesco de antemano compartas la investigacion que has hecho al respeto

Aprovecho este para saber si has trabajado con Data Abstract de remobject para que compartar la experiencia que ha tenido con estdo
Responder Con Cita
  #11  
Antiguo 29-01-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por ASAPLTDA Ver Mensaje
Agradesco de antemano compartas la investigacion que has hecho al respeto

Aprovecho este para saber si has trabajado con Data Abstract de remobject para que compartar la experiencia que ha tenido con estdo
Te soy sincero, veo demasiado control pasado a la base de datos. Prefiero manejarlo a nivel de aplicación para justamente, ahi entra data abstract, poder abstraerme del motor y funciona de la misma manera con cualquiera de ellos.

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #12  
Antiguo 30-01-2013
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
La verdad es que es facíl de usar, se usa en un Stored procedure, Trigger o execute block.

Código SQL [-]
SET TRANSACTION READ WRITE; INSERT INTO ... INSERT INTO ... if(all_OK){   COMMIT; }else{   ROLLBACK; }
Pero la verdad no tiene sentido usarlo, excepto para transacciones muy cortas donde se requiere un bloqueo específico, es decir, asiganción de consecutivos de facturación masiva, que se encuentra en diferentes puntos y se ejecuta en el mismo momento, es lo único que se me ocurre, para tiempos largos hay medidas mucho mas prácticas.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lock conflict on no wait transaction gorsan Conexión con bases de datos 2 08-08-2007 09:47:56
Lock Timeout para WAIT transacciones camino Firebird e Interbase 0 15-05-2007 01:56:08
Transacciones En Firebird espectro_jd SQL 3 21-02-2007 18:54:40
¿Para qué sirve la tecla Scroll Lock en los teclados? marcoszorrilla La Taberna 11 29-01-2007 15:36:08
Fibtransaction wait i timeout celades1 Firebird e Interbase 2 02-12-2005 19:32:29


La franja horaria es GMT +2. Ahora son las 15:04:04.


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