[firebase-br] Deadlock on execute procedure

Carlos Matos matos em comograma.pt
Quarta Outubro 27 18:50:16 -03 2021


Já pensei mas é tarefa árdua pois tenho milhões de linhas de código. Posso neste módulo em concreto mudar para FireDac. Será uma opção em último recurso.  

--  
Carlos Matos  


Ligado 27 de outubro de 2021 às 22:45:38, Hélio Oliveira via lista (lista em firebase.com.br(mailto:lista em firebase.com.br)) escreveu:

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