[firebase-br] Como faz pra Matar transações no Firebird 2.5
cpd em itauto.com.br
cpd em itauto.com.br
Seg Jul 15 10:20:36 -03 2013
Então , isso eu faço em apenas 3 telas do sistema , pois , tive problemas de
atualizar duas vezes o mesmo registro ,
foi a unica forma que encontrei de nao deixar isso acontecer mais . não sei
te falar se esse problema era no firebird
das versões anteriores , pois essa rotina tenho desde a versão 2.0 , e
tambem tem o problema de qndo eu estiver
atualizando uma NF onde não aplico esse procedimento , mais utilizo
transação . e ja aconteceu de cair a conexão ,
e ai , eu tenho que em vez de matar somente aquela transação , tenho que
restartar o servidor inteiro , isso que eu
não queria ter que fazear , pois ha dias em que tem 100 usuários pendurados
e pra matar fica dificio .
Adilson Pazzini .
-----Mensagem Original-----
From: Jéter Rabelo - GMail
Sent: Monday, July 15, 2013 9:21 AM
To: lista em firebase.com.br
Subject: Re: [firebase-br] Como faz pra Matar transações no Firebird 2.5
Me diz uma coisa, qual o motivo dessa transação ficar aberta? Prevenir
alteração no mesmo?
Quanto tempo é esperado que esse select fique com a transação em aberto?
Tem uma forma de bloquear um registro (lock), temporariamente para
evitar problemas de 2 usuário alterarem o mesmo ao mesmo tempo:
select * form <TABELA where id=<ID> with lock
Mas, se demorar para efetuar um "Commit/Roolbak", vai dar o mesmo erro.
("Deadlock").
Eu utilizava essa rotina de bloquear registro na "falecido" Clipper.
Quando migrei para Interbase/Firebird, no começo da década passada,
nunca mais utilizei isso.
Na minha opinião, bloquear um registro de alteração é somente num caso
extremamente, ultra e de super importância.
Portanto, reveja seus conceitos de transações e veja se encaixa nisso.
Tenho sistemas rodando que, durante o dia, chega a mais de 100 usuários
simultâneos incluindo, alterando, excluindo, lendo registros e etc, e
"nunca" obtive um deadlock.
Atenciosamente.
Jéter Rabelo Ferreira.
Em 15/07/2013 08:58, cpd em itauto.com.br escreveu:
> Inicio a transação .
>
> Dou um Update no registro em um campo que foi criado pra marcar que esta
> sendo alterado (Deixando a Transação Aberta).
>
> Ai qndo outra estação vai fazer o mesmo procedimento , ele mesmo retornar
> o erro abaixo :
> [lock conflict on no wait transaction deadlock update conflicts with
> concurrent update concurrent transaction number is 6049228]
>
> So que o grande problema , acontece , quando um terminal perde a conexão ,
> ai esse registro que foi marcado no inicio , fica travado
> durante 2 horas , até vi que existe uma forma de reduzir esse tempo , mais
> vi tambem que não é aconselhavel fazer isso no firebird ,
> e vi tambem que tem como fazer isso no sistema operacional , mais no
> windows nao consegui fazer rolar isso tambem , so que tambem
> esse problema não acontece sempre , somente qndo cai uma conexao mesmo ,
> por isso que queria saber se existe uma forma pra deletar
> somente essa transação que ta bloqueada no servidor . Queria ver se tem
> como excluir pelo numero que ela gera na estação como no
> erro :[concurrent update concurrent transaction number is 6049228]
>
> Desde ja agradeço
>
>
> Adilson PAZZINI
>
>
> -----Mensagem Original----- From: Ricardo Kenji
> Sent: Monday, July 15, 2013 8:41 AM
> To: FireBase
> Subject: Re: [firebase-br] Como faz pra Matar transações no Firebird 2.5
>
> Como é esse travamento de registro que vc faz?
>
> Em 12/07/2013 14:53, cpd em itauto.com.br escreveu:
>> Hj tenho uma aplicação em Delphi , onde que as vezes em determinada tela
>> , eu faço
>> o travamento de um registro , acionando uma transação e dando um update
>> em um registro,
>> isso pra marcalo e deixar ele bloqueado no serviço , ai se outro usuario
>> tentar entrar no mesmo
>> registro , o servidor me retornar o erro “Dead Lock” , inclusive me
>> passando o numero da Transação.
>>
>> Queria saber se existe como excluir isso no servidor . pois tenho casos
>> onde isso aconte-se por causa
>> de queda de conexao e ai so depois de 2 horas que o firebird libera a
>> transação .
>>
>> Desde ja agradeço
>>
>>
>> Adilson PAZZINI
>> ______________________________________________
>> 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
>
>
> ______________________________________________
> 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
>
> ______________________________________________
> 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
______________________________________________
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
Mais detalhes sobre a lista de discussão lista