[firebase-br] Travamento Otimista ou Pessimista, eis a questão

Marciano Bandeira marciano.bandeira em bol.com.br
Qua Jan 12 10:05:56 -03 2005


Bom dia a todos

Uma coisa está me esquentando a cabeça a algum tempo, estou desenvolvendo um sistema de vendas com banco de dados firebird, que rodará em rede, até aí tudo blzinha
Mais digamos que o produto 1 da tabela de produtos tenha o estoque 50, aí o Terminal_1 vai e vende 10 unidades do Produto 1, mais antes de comitar (pois estará gravando outos items), o Terminal_2 vai e vende 5 unidades do produto 1 e Comita a transação, aí o estoque do produto 1 cai para 45, aí o Terminal_1 Comita a transação dele, como ficará o estoque, ele baixará para 35 que seria o correto, ou baixará para 40 que era o que seria correto quando ele fez a gravação?
OBS..: As baixas de estoque estou fazendo dentro de Triggers.
OBS2: Tentei fazer o teste pelo IbExpert e ao tentar gravar o Item no Segundo terminal antes de comitar o primeiro apareceu a seguinte mensagem:

"Error Message:
----------------------------------------
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
lock conflict on no wait transaction.
deadlock.
update conflicts with concurrent update."

Outra pergunda, se o Firebird/Interbase faz travamento otimista de registro porquê dessa mensagem?

Fica as duas perguntas no ar
Agradeço a todos que poderem me ajudar
Marciano Bandeira
msn: cbndesenvolvimento em hotmail.com
skype: marcianobandeira




Mais detalhes sobre a lista de discussão lista