[firebase-br] Transações...

Alan Matos alanladecasa em gmail.com
Qua Maio 14 09:13:55 -03 2008


Olá pessoal...

Gostaria de uma ajuda de vocês, para descobrir como resolver um problema com
DEAD LOCK no pdv...

Antes de qualquer coisa, gostaria de informar que ja resolví este problema
utilizando-me da técnica de carga/descarga no PDV,
mas, preciso resolver isso para quando as estações trabalham on-line...

Uso D7.
Ja fiz teste com IBX, DBX, MDO, só não testei ainda o Zeus e o IBO, o
problema persistiu em todos!

Imaginem a seguinte situação:

um mercadinho, com apenas três pontos de venda, onde o gerente (metido
a EXPERT em TI), não aceita trabalhar off line, ou seja, com carga e
descarga. Daí, sempre que o mesmo produto é vendido em mais de um caixa, em
vendas simultâneas, ocorre o maldito DEAD LOCK. Se eu 'seto' a
transação diferente de  NOWAIT o segundo caixa fica aguardando a finalização
da venda do outro caxia...

claramente o problema eh na atualização do estoque...
ja tentei fazer via aplicação, via trigger, mais nada funcionou...

a forma mais aproximada (gambiarra mesmo) que encontrei foi utilizando uma
TRANSAÇÃO diferente para a inclusão de cada Iitem!

assim:

INICIA TRANSACAO
INCLUI O ITEM
COMITA
FECHA TRANSAÇÃO


mais isso me dá uma margem muito grande para furo no estoque... pq, se eu
cancelar a venda, um rollback não teria efeito sobre os itens, uma vez que
ja estavam todos comitados, poderia fazer no braço, mas, em uma queda de
energia / falha de hardware, as coisas se complicariam!

Resumindo, eu peciso saber se tem como no FB trabalhar parecido com o que
eram os antigos BDs desktop... (eu era feliz e nao sabia), ou algo
que aproxime-se daquilo!


Espero ter sido claro, e que uma alma iluminada, possa me ajudar com isso!

Obg. a todos!
\o/


-- 
Alan Matos
msn: alanladecasa em hotmail.com



Mais detalhes sobre a lista de discussão lista