Ver Mensaje Individual
  #5  
Antiguo 17-02-2007
camino camino is offline
Miembro
 
Registrado: feb 2007
Posts: 48
Reputación: 0
camino Va por buen camino
transacciones wait lock timeout

estimado Casimiro Notevi
Me explico:
1.- Caja1, Caja2, Caja3 son clientes que tiene el mismo software.

2.- Sus correspondientes pFIbTransaction estan configuradas como sigue:


]

write
nowait
rec_version
read_committed

]

Esto quiere decir que si Caja1 vende una lata de kikocola y en ese mismo instante Caja2 tambien vende una lata de kikocola se produce una concurrencia de 2 transacciones al mismo registro.
Por lo tanto la transaccion que llego segunda por tener un ]"nowait"]no espera y lanza un error lock_conflict indicando al usuario esta situacion para despues hacer un rollback.
Ante esta situacion el usuario debe rehacer la transaccion.
Imaginate en un supermercado!!!

]DE LA OTRA FORMA]

1.- Caja1, Caja2, Caja3 son clientes que tiene el mismo software.

2.- Sus correspondientes pFIbTransaction estan configuradas como sigue:

]

write
wait
LOCK TIMEOUT 5
rec_version
read_committed

]

Esto quiere decir que si Caja1 vende una lata de kikocola y en ese mismo instante Caja2 tambien vende una lata de kikocola se produce una concurrencia de 2 transacciones al mismo registro.
En este caso la transaccion que llego segunda por tener un ]"wait"]espera a que la primera transaccion termine y despues procede a ejecutarse.
Pero este ]"wait" tiene un peligro potencial, pues mientras no termine la transaccion anterior no se ejecutara la siguiente pudiendo pues transcurrir una cantidad de tiempo muy grande(se desconecto el cliente , etc.).
Entonces aqui viene la gran solucion. Firebird 2 acompaña el parametro
"wait" del parametro "Lock Timeout X".
Esto significa que si la primera transaccion no se termina en 5 segundos, se producira un error isc_lock_timeout lo cual se maneja programaticamente.

En ningun caso este parametro quiere decir que la segunda transaccion debe esperar 5 segundos. De hecho puedo colocarle un tiempo de 1 segundo si quiero.

Y con respecto a lo ultimo. Si revisas las consultas del foro, la mayoria de ellas tienen que ver con consultas relacionadas con stocks, tablas maestro detalle, updates etc.
Responder Con Cita