[firebase-br] RES: RES: Deadlock update conflicts

Jonas Rodrigo Pacheco jonas.pacheco em tecnicon.com.br
Sex Jan 18 11:57:15 -03 2013


A única solução/alternativa é mudar o modo de isolamento da transação para WAIT?

Pensamos em criar uma tabela com um "DIÁRIO" de estoque, desta forma as triggers de saldo fariam apenas inserts (eliminando a possibilidade de concorrência).

Jonas Rodrigo Pacheco

-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Carlos H. Cantu
Enviada em: quarta-feira, 16 de janeiro de 2013 14:32
Para: FireBase
Assunto: Re: [firebase-br] RES: Deadlock update conflicts

O FB 2.5 suporta transação autônoma no "execute statement", mas ela tem sempre o mesmo isolamento da transação original.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org www.warmboot.com.br - blog.firebase.com.br

KM> Boa tarde Jonas!
KM> Acho que você não conseguirá fazer isso, pois a SP entra no mesmo 
KM> contexto transacional em que foi disparada e, até onde sei, ainda 
KM> não existe transação autônoma no FB.
KM> Minha sugestão é fazer a trigger chamar a SP que atualiza o saldo e, 
KM> no final dela, fazer algo como:

KM> WHEN ANY DO --tratamento de exceção
KM> BEGIN
KM>   Sleep(1000); -- usa alguma UDF pra segurar o processo por algum tempo
KM>   -- aqui, ou você chama de novo a SP ou bota o produto
KM>   -- numa fila de recálculo pra processa-lo mais tarde END

KM> Um abraço,

KM> *Kelver Merlotti*
KM> Gerente de Treinamentos da Embarcadero do Brasil Coordenador 
KM> Editorial da Active Delphi
KM> Twitter: http://www.twitter.com/kmerlotti


KM> 2013/1/16 Jonas Rodrigo Pacheco <jonas.pacheco em tecnicon.com.br>

>>
>> Obrigado Gladiston Santana!
>>
>> 'Manipular' o modo de isolamento da transação dentro de uma store 
>> procedure, alguém tentou algo do gênero?
>>
>> Jonas Rodrigo Pacheco


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa






Mais detalhes sobre a lista de discussão lista