[firebase-br] Erro de lock conflict

Daniel Viana daniel em jbcinformatica.com.br
Qui Jun 1 09:48:41 -03 2006


Edson,

Obrigado pela resposta, mas no meu caso eu uso 
datasnap então não há controle de transação
na camada cliente ,somente na aplicação 
servidora... Já tentei de tudo para resolver este problema
mas ele persiste.

Se alguém tiver mais alguma dica, agradeço.

Obrigado,
Daniel

At 00:00 01/06/2006, you wrote:
>Daniel não sei se é este o seu caso. Mas programadores Delphi (sou um
>deles) possui o péssimo defeito de abrir a transação no inicio do
>programa e somente finaliza-la no término do programa.
>
>Com isto a transação fica aberta, e quando outro programa (ou outra
>instancia do mesmo) tenta acessar o mesmo dado, ele trava ou gera dead
>lock.
>
>Se for o seu caso, repense a maneira como você trabalha com
>transações. Sómente inicie uma transação quando for haver alguma
>alteração no banco, e quando terminar esta alteração, encerre a
>transação.
>
>On 5/31/06, Alessandro Lúcio Cordeiro da Silva
><alecordeirosilva em yahoo.com.br> wrote:
> > Bom Daniel, se atentarmos para a 1º mensagem que aparece
> >   "lock conflict on no wait transaction", 
> você deve ter algum outra transação que não foi 
> Commitada, que esta acessando este mesmo 
> registro ao mesmo tempo, depois deste conflito 
> ele tenta inserir este registro, mas parece que 
> não enxerga ele porque é de outra transação. 
> Acredito que você deve rever como você trata as 
> transações concorrente. No site do firebird 
> explica varios tipos de como o Firebird trata.
> >
> > Daniel Viana <daniel em jbcinformatica.com.br> escreveu: Bom dia,
> >
> > Temos uma aplicação que roda com Firebird e 
> Delphi 6 em 3 camadas (datasnap).
> > De vez em quando, quando vamos incluir algum
> > registro em uma tabela chamada HISTORICO,
> > o Firebird retorna o seguinte erro :
> >
> > Erro : lock conflict on no wait transaction
> > violation of FOREIGN KEY constraint "INTEG_33" on table "HISTORICO"
> >
> > Seria correto se realmente existisse violação de
> > chave, mas *não* há. Tanto que ao tentar incluir
> > de novo logo após dar o erro, funciona.
> >
> > O que pode ser isso ? O erro é intermitente,
> > ocorre com alguma frequência, mas não conseguimos
> > reproduzir quando queremos.
> >
> > Obrigado,
> > Daniel





Mais detalhes sobre a lista de discussão lista