[firebase-br] Transações...

Magno System magno em speet.com.br
Qua Maio 14 14:05:18 -03 2008


Alan vou dar um chute. Você abre a transação carrega os itens da venda, faz 
as operações necessárias (estoque, caixa, etc) e só então fecha a transação.

Se for isso este é o motivo. A sua transação fica muito tempo aberta. Eu 
particularmente, eu gravo todos os produtos numa tabela local, capturo as 
informações necessárias como forma de pagamento, cliente, etc, etc... e aí 
então abro a transação, cadastro a venda e já fecho a transação.

Isso costuma durar milésimos de segundos. Só para se ter noção fiz o 
seguinte teste: cadastrei a mesma venda em dois notebook com vários produtos 
e apertei o botão para fechar venda ao mesmo tempo e não deu deadlock.

----- Original Message ----- 
From: "Alan Matos" <alanladecasa em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, May 14, 2008 9:13 AM
Subject: [firebase-br] Transações...


Olá pessoal...

Gostaria de uma ajuda de vocês, para descobrir como resolver um problema com
DEAD LOCK no pdv...

Antes de qualquer coisa, gostaria de informar que ja resolví este problema
utilizando-me da técnica de carga/descarga no PDV,
mas, preciso resolver isso para quando as estações trabalham on-line...

Uso D7.
Ja fiz teste com IBX, DBX, MDO, só não testei ainda o Zeus e o IBO, o
problema persistiu em todos!

Imaginem a seguinte situação:

um mercadinho, com apenas três pontos de venda, onde o gerente (metido
a EXPERT em TI), não aceita trabalhar off line, ou seja, com carga e
descarga. Daí, sempre que o mesmo produto é vendido em mais de um caixa, em
vendas simultâneas, ocorre o maldito DEAD LOCK. Se eu 'seto' a
transação diferente de  NOWAIT o segundo caixa fica aguardando a finalização
da venda do outro caxia...

claramente o problema eh na atualização do estoque...
ja tentei fazer via aplicação, via trigger, mais nada funcionou...

a forma mais aproximada (gambiarra mesmo) que encontrei foi utilizando uma
TRANSAÇÃO diferente para a inclusão de cada Iitem!

assim:

INICIA TRANSACAO
INCLUI O ITEM
COMITA
FECHA TRANSAÇÃO


mais isso me dá uma margem muito grande para furo no estoque... pq, se eu
cancelar a venda, um rollback não teria efeito sobre os itens, uma vez que
ja estavam todos comitados, poderia fazer no braço, mas, em uma queda de
energia / falha de hardware, as coisas se complicariam!

Resumindo, eu peciso saber se tem como no FB trabalhar parecido com o que
eram os antigos BDs desktop... (eu era feliz e nao sabia), ou algo
que aproxime-se daquilo!


Espero ter sido claro, e que uma alma iluminada, possa me ajudar com isso!

Obg. a todos!
\o/


-- 
Alan Matos
msn: alanladecasa em hotmail.com
______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.16/1430 - Release Date: 13/5/2008 
07:31






Mais detalhes sobre a lista de discussão lista