[firebase-br] Conflito na hora de atualizar registro

Juliano Van Dal julianovandal em yahoo.com.br
Ter Maio 22 12:03:13 -03 2007


Oi Evandro.
Eu dei uma olhada, ateh achei a postagem que voce indicou, no entanto parece 
que o link esta quebrado. e como tbem fiquei interessado, se puder postar, 
agradeço.
Té+

"Evandro Siqueira" <vansiqq em gmail.com> 
escreveu na mensagem news:4652D66C.4040502 em gmail.com...
John Klaus Kanenberg escreveu:
> Caros amigos,
>
> Em um sistema que desenvolvi, utilizo uma tabela para gravar um valor de
> referência em um determinado campo (simulando um generator/trigger via
> programação)...
>
> Este sistema roda em rede com ambiente windows, servidor win2k com
> firebird 1.5, com vários usuários gravando registros simultaneamente...
>
> Funciona bem, mas em certas operações do sistema este grava um elevado
> numero de registros sequenciais no banco de dados, e a cada novo
> registros o sistema faz um select na tabela de referência, pega o valor
> e dá um update incrementando este... Mas como este processo acaba se
> tornando muito rápido e algum outro cliente tentar dar update na tabela
> de referência acaba dando conflito !!!
>
> Qual seria a melhor opção para resolver este problema, uma vez que o
> sistema precisa do valor de referência (auto-incremento) antes de gravar
> as informações simultaneamente em 2 outras tabelas, e ao mesmo tempo
> vários cliente aleatoriamente precisam alterar (update) o valor de
> referência.
>
> Utilizo Delphi 7 com acesso ao banco de dados utilizando componentes IBX
> (TIBDatabase/TIBTransaction/TIBQuery).
>
> Desde já agradeço pela ajuda dos amigos.
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>

Este sistema funciona bem em sistemas monousuários. Quando passa a ter
transações concorrentes os dead locks são inevitáveis. Eu utilizo um
esquema de geração de chave que peguei do Luiz "RedDevil" e que vem
funcionando perfeitamente. sugiro dar uma olhada nas mensagens postadas
anteriormente. Em tempo: esse esquema do "reddevil" utiliza os
componentes de acesso IBO mas pode facilmente ser implementado no IBX ou
outro componente de acesso, visto que a lógica fica toda no banco de dados.

[]'s
Evandro Siqueira
Aracaju/SE

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa







Mais detalhes sobre a lista de discussão lista