[firebase-br] lock conflit on no wait transaction

Eduardo Pombo eduardo em embras.net
Seg Maio 3 13:10:01 -03 2010


Boa Tarde,

A transacao funciona basicamente como um bloqueio do registro para que
nao ocorra gravacoes simultaneas, por isso, quando uma segunda maquina
tenta acessar o registro que voce esta utilizando ele gera essa
mensagem. Se voce tem em uma tabela 500 registros e vai gravar mais um
pegado por exemplo o proximo numero para inserir por um " select
max(ID) from tabela " ele trara para voce o 501 e enquanto voce nao
der COMMIT ou ROLLBACK esse registro nao sera gravado efetivamente
para as outras maquinas ( basicamente ele nao existe para as demais
maquinas ), com isso para a outa maquina ela tambem ira pegar como
proximo numero o 501 e por isso ocorre o erro.

para sanar esse erro voce deve tomar algumas medidas como por exemplo:
- iniciar a transacao apenas no momento exato da gravacao porque voce
fica com o registro travado o minimo de tempo possivel;
- deixar para pegar o proximo numero tambem no momento da gravacao
- pode-se tambem utilizar triggers e generators e assim nao ter esse
problema ( mas a numeracao pode ficar pulada ).


Espero ter ajudado,



Em 3 de maio de 2010 12:49, Contabiliza - Cristiano
<cpd em contabilizanet.com.br> escreveu:
> Boa tarde pessoal,
>
>
>
> Comecei a utilizar transações num sistema que estou desenvolvendo e estou me
> deparando com
>
> Este erro constantemente,, ele acontece quando eu inicio uma trasnsação, na
> maquina onde inicia a transação
>
> O sistema continua funcionado perfeitamente, mais na outra maquina da rede
> quando
>
> Vou inserir novos dados no sistema dá o seguinte erro,
>
> Lock conflito on no wait transaction, estou utilizando delphi 7 , ibo
> objetct e firebird 1.5.
>
> O que vcs me aconselham fazer para cercar este erro? Lembrando que este erro
> so
>
> Ocorre quando inicio uma 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://firebase.com.br/pesquisa
>



-- 

Atenciosamente

José Eduardo Pombo de Barros
Gerente de Manutenção de Sistemas




Mais detalhes sobre a lista de discussão lista