[firebase-br] Deadlock on execute procedure

Hélio Oliveira hpensador em gmail.com
Quarta Outubro 27 18:45:38 -03 2021


Colega faz muito anos que utilizei os componentes IBX e ele já não
funcionava bem com FB. Não sei qual o seu cenário, mais lhe pergunto já
pensou em mudar para um Firedac ou outra suite de componentes.

Em qua., 27 de out. de 2021 18:27, Carlos Matos via lista <
lista em firebase.com.br> escreveu:

> 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
> ______________________________________________
> 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