[firebase-br] Socorro! deadlock (conflito em trasação)

forumfb em orionsoftware.com.br forumfb em orionsoftware.com.br
Sex Jul 27 10:24:10 -03 2007


Olá Pessoal!

estou com um problema de transação q esta me dando dor de cabeça.
"LOCK CONFLICT ON NO WAIT TRANSACTION DEADLOCK"

Bem, deixe-me explicar a situação:

em meu aplicativo eu tenho uns 6 ou 7 DataModules, em cada Data module eu tenho
uma IBTransacion para todas as IBQuerys, estas querys incluem e atualizao
utilizando IBUpdatesSql. As Transactions são read commited.

trabalho mais ou menos da seguinte forma:
exemplo de um pedido de venda
TABELAVENDA.INSERT
(usuario informa todos os dados da venda)
a cada item inserido na lista eh dado um CommitRetaining (que esta ligado a
tabela vendas e itens de venda)
e tbm atualizado estoque com CommitRetaining (que esta ligado a outra
IBTransaction)
ao final eh dado um post e novamente CommitRetaining (Para vendas e itens de
venda)

ps: as tabelas de venda e itens de venda ficam em um mesmo datamodule e mesma
IBTransaction, a tabela de estoque fica em outra transaction e datamodule

então o que ocorre é o seguinte:
A primeira maquina a acessar o sistema trabalha o dia todo normalmente, as
outras maquinas as vezes nem sempre ocorre a menssagem de conflito deadlock ao
atualizar e commitar estoque.
Mas o detalhe é q isso não ocorre em todos os clientes, geralmente ocorre em
clientes que não possuem servidores exlusivos.
O Problema de deadlock tbm ocorre em outras tabelas mas não com frequencia.

Então c alguem puder me ajudar a resolver, agradeço!

e gostaria de saber como funciona o esquema de travar os registros (deadlock)
qdo dou um comando tabela.edit, o servidor trava este registro? ou ele fica
travado apenas localmente? qdo abro minha tabela filtrando com sql, estas
informações não ficam trabalhando localmente na maquina até q esta dispare um
commit? quando dou um CommitRetaining ele não deve ocorrer de imediato no
banco? ocorre dele ficar pendente?

Obrigado!
aguardo maiores informações


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.






Mais detalhes sobre a lista de discussão lista