[firebase-br] Como faz pra Matar transações no Firebird 2.5

Jéter Rabelo - GMail jeter.rabelo em gmail.com
Seg Jul 15 11:02:17 -03 2013


Faça as alterações "localmente", sem nenhuma transação aberta BD.

Na hora de gravar, abra a transação e efetue um commit.

As transações devem ter um tempo mínimo de "durabilidade".

StartTransaction / Commit e/ou Rollback.

Atenciosamente.
Jéter Rabelo Ferreira

Em 15/07/2013 10:20, cpd em itauto.com.br escreveu:
> 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
>
> ______________________________________________
> 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