[firebase-br] Travamento Otimista ou Pessimista

Marciano Bandeira marciano.bandeira em bol.com.br
Qua Jan 12 16:41:52 -03 2005


  Boa tarde 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