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

Kleber Caneva kdcc em terra.com.br
Qua Maio 14 10:40:23 -03 2008


Pelo visto vc tem um campo de SaldoEmEstoque que toda a transação tenta 
atualizar. Se for isso, recomendo que mude seu metodo.

Eu utilizo uma tabela de movimentação de estoque, onde cada lançamento 
adicona um novo registro. Com isso garanto que não haverá 2 usuarios mexendo 
no mesmo registro.

Neste metodo, para saber o saldo do produto, tenho um SP que passa 
recalculando o estoque (somando e subtraindo os lançamentos).
O ponto critico desse metodo é que ao acumular um volume grande de registro 
a tendencia é geerar lentidão. Para contornar esse problema, você pode criar 
pontos de estoque, fazendo com  que sistema caluclar a partir do ultimo 
ponto de estoque. Por exemplo, você cria um ponto de estoque por dia, semana 
ou mes e o sistema recalcula somente desse periodo até agora.

Espero que tenha conseguido passar a ideia.

[]´s

Kléber Caneva


----- 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

E-mail verificado pelo Terra Anti-Spam.
Para classificar como spam, visite
http://mail.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0NDU0NzM0I3Blcm0hdGVycmEmMSwxMjEwNzY3MjYwLjIwMTcyMC4xMTMwNS5kb21vbmkuaHN0LnRlcnJhLmNvbS5iciw1MTIz
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.






Mais detalhes sobre a lista de discussão lista