É Aconselhavél usar timer para verificar Transação da Rede?

13/03/2006

0

como o título diz...

pensei em usar esse código em um timer com intervalo de 10 segundos:
if Not Transaction.InTransaction then
 Transaction.StartTransaction;
  Try
   if Transaction.InTransaction then
    Transaction.CommitRetaining
     Except
      if Transaction.InTransaction then
       Transaction.RollbackRetaining;
        end;


[b:659cbb3f41]Detalhe:[/b:659cbb3f41]
passei a usar esse código depois que minha aplicação ficava o tempo todo, dando a mensagem:
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update

pode ser usado ou geraria algum problema futuro na minha aplicação?


Paullsoftware

Paullsoftware

Responder

Posts

13/03/2006

Adriano Santos

como o título diz... pensei em usar esse código em um timer com intervalo de 10 segundos:
if Not Transaction.InTransaction then
 Transaction.StartTransaction;
  Try
   if Transaction.InTransaction then
    Transaction.CommitRetaining
     Except
      if Transaction.InTransaction then
       Transaction.RollbackRetaining;
        end;
[b:e3618a28bc]Detalhe:[/b:e3618a28bc] passei a usar esse código depois que minha aplicação ficava o tempo todo, dando a mensagem:
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update
pode ser usado ou geraria algum problema futuro na minha aplicação?


[b:e3618a28bc]PallSofware[/b:e3618a28bc], eu particularmente não aconselho. As Transações só devem, ou palavra certa seria ´necessitam´, serem usadas no momento da gravação/edição, etc de registros no seu Banco de Dados. Ora, se nenhum registro sendo editado porque ficar ´incomodando´ o banco com a requisição de transação?

Eu vejo por esta ótica, não sei o que poderia causar de problemas se a aplicação ficasse de tempo-em-tempo dando Commit, teria que fazer alguns testes, mas sei que não é necessário isso.

Talvez algum colega se pronuncie com mais detalhes.


Responder

13/03/2006

Aroldo Zanela

Colega,

Isto viola um conceito básico de atomicidade de transações. (http://www.inf.puc-rio.br/~casanova/LivroCasanova/ncap6.pdf)

A noção de transação é introduzida para forçar o sistema a executar uma seqüência de ações elementares como se fosse uma unidade atômica, sem interferência externa. Na sua forma mais simples, uma transação contém apenas um comando da LMD. Exige-se do usuário que codifique as transações de tal forma que quando executadas sozinhas: T1. sempre terminem; T2. preservem a consistência do banco de dados. Exige-se do SGBD, por sua vez, que a cada invocação de uma transação T: S1. a transação T seja executada por completo; S2. a execução da transação T se dê sem interferência de outras transações que porventura estejam sendo executadas concorrentemente.



Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar