[firebase-br] Deadlock on execute procedure

Carlos Matos matos em comograma.pt
Quarta Outubro 27 18:19:37 -03 2021


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

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

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

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

--  
Carlos Matos  


Ligado 27 de outubro de 2021 às 21:58:41, Gladiston Santana via 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


Mais detalhes sobre a lista de discussão lista