[firebase-br] Deadlock on execute procedure

Carlos H. Cantu listas em warmboot.com.br
Quarta Outubro 27 20:22:19 -03 2021


WAIT apenas faz esperar pela decisão da outra transação, mas se a
outra transação der commit ao invés de rollback, vai dar update
conflict do mesmo jeito.

Sugiro que leia o artigo que te mandei no email anterior.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

CMvl> Não estou a usar datawares.  
CMvl> Estou usando Delphi a acessando as bds do firebird através das componentes IBX.

CMvl> Fiz um teste e se usar na transação os parâmetros:  
CMvl> Read_committed
CMvl> No_rec_version

CMvl> E sendo que assim o parâmetro wait está implícito (testei e
CMvl> está se facto), havendo um update concorrente com outra
CMvl> transação, esta 2.ªtransacao deveria esperar que a 1.a faça o
CMvl> commit, mas não, está a dar erro.  

CMvl> Será que isto apenas acontece se estivermos a falar de
CMvl> instâncias diferentes, ou seja, o mesmo programa chamado duas vezes?!!!
CMvl> Será que o problema é, estando eu com duas transações iniciaras
CMvl> na mesma instância do programa, a 2.ª quando apanha um update
CMvl> concorrente, gera o erro ignorando o parâmetro wait?!!!

CMvl> --  
CMvl> Carlos Matos  


CMvl> Ligado 27 de outubro de 2021 às 21:58:41, Gladiston Santana via
CMvl> lista (lista em firebase.com.br(mailto:lista em firebase.com.br)) escreveu:

>> se estiver usando datawares (dbedit, dbcombobox, dbmemo, ....) e depois
>> dispara uma stored talvez seu problema esteja num autocommit=true do
>> firedac, isto é, não é tudo na mesma transação, ele tá abrindo e fechando e
>> em algum momento que disparar a stored vai encontrar seu trabalho em edição
>> e causando o lock. Mais ainda se houver triggers encolvidas. Dá uma olhada
>> nisso. Procedimentos longos, eu gosto de fazer as transações manualmente ou
>> pô-los em execute block, mesmo que chamasse uma SP lá dentro apenas para
>> garantir tudo no mesmo lugar.
>>  
>> Em qua., 27 de out. de 2021 às 11:13, Carlos Matos via lista <
>> lista em firebase.com.br> escreveu:
>>  
>> > Estou tendo um problema há vários meses.
>> >  
>> > Estou a usar o Firebird 4 e tenho uma unit onde faço várias operações,
>> > select, update, insert e no final estou a executar um procedimento, ou
>> > seja,
>> > um Stored Procedure do Firebird.
>> >  
>> > Tudo isto está na mesma transação.
>> >  
>> >  
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
CMvl> ______________________________________________
CMvl> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
CMvl> Para saber como gerenciar/excluir seu cadastro na lista, use:
CMvl> http://www.firebase.com.br/fb/artigo.php?id=1107
CMvl> Para consultar mensagens antigas:
CMvl> http://www.firebase.com.br/pesquisa_lista.html




Mais detalhes sobre a lista de discussão lista