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

Jonas Rodrigo Pacheco jonas.pacheco em tecnicon.com.br
Qua Fev 13 13:29:28 -03 2013


Boa tarde,

Senhores, autonomous transaction gerou perda de performance e não resolveu o problema.

-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Kelver Merlotti
Enviada em: sexta-feira, 18 de janeiro de 2013 12:18
Para: FireBase
Assunto: Re: [firebase-br] RES: RES: Deadlock update conflicts

Não deu certo com autonomous transaction e execute statement como o Cantu disse?
Enfim, criar o diário é uma alternativa, mas pode ser custoso pois todos os pontos do sistema que envolvem estoque teriam de olhar para esse diário, certo?
Ou então você pode montar uma fila de recálculo, registrando o IDProd, Operacao (+/-), Qtde. Aí você teria um serviço no server, por exemplo, que fique monitorando a fila e somando/subtraindo do estoque conforme a tabela.
Mas isso é mais para ambientes muito críticos, com muita concorrência...
pelo que você comentou, acho que não é o seu caso, visto que isso acontece raramente.
Um abraço,

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


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

> 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 
> KM> e, no final dela, fazer algo como:
>
> KM> WHEN ANY DO --tratamento de exceção 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
>
>
>
> ______________________________________________
> 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
>
______________________________________________
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