![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#5
|
|||
|
|||
|
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. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error al hacer insert (campo fecha) en firebird con fibplus | Acanol | Firebird e Interbase | 7 | 15-06-2006 09:05:07 |
| Ejemplo maestro detalle con fibplus+firebird | Mauro® | Conexión con bases de datos | 1 | 12-05-2006 23:24:45 |
| FibPlus | Malon | Conexión con bases de datos | 4 | 22-04-2004 01:41:49 |
| IBX, IBO, Fibplus | raul_sal | Conexión con bases de datos | 6 | 04-06-2003 00:50:45 |
| FibPlus y las Dll | Erik_Magnus | Firebird e Interbase | 0 | 23-05-2003 06:44:25 |
|