[firebase-br] Snapshot Table Stability

Anticlei Scheid cleischeid em yahoo.com.br
Sex Jul 6 08:41:52 -03 2007


Bom dia.

Obrigado a todos pelas respostas.
Talvez eu esteja equivocado em querer usar esta característica então vou 
explicar com mais detalhe porque achei que preciso.

Tenho uma tabela que registra os movimentos físicos de estoque e quando 
executo um despacho físico dos itens de um pedido de vendas tenho que 
garantir que nenhum outro usuário fará baixas nos mesmos itens até que a 
transação termine.
Embora a transação seja muito rápida é possível que dois usuários iniciem 
transações coincidentes com algum ou alguns itens em comum e como as 
transações não "enxergam"  entre si os registros inseridos por outra 
transação é possível que o sistema permita baixa de um item que não esteja 
no estoque, pois seu saldo é calculado sobre os registros de movimento, logo 
o aplicativo pode não bloquear um saldo negativo porque simplesmente não 
estaria negativo no momento da transação coincidente.
Concordo que a probabilidade de acontecer é muito pequena, mas existem, 
então eu queria que ao iniciar uma transação dessas a tabela de movimentos 
ficasse travada para outras transações até que este primeira terminasse, 
garantindo 100% o cálculo do saldo no momento.

Se alguém puder sugerir uma outra forma agradeço muito.

Abraço

----- Original Message ----- 
From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, July 06, 2007 7:58 AM
Subject: Re: [firebase-br] Snapshot Table Stability


Vc define as caracteristicas da transação no momento em que abre ela,
e não nas instruções sql (update, insert, etc) que vc vai rodar.

Cuidado pois esse tipo de isolamento pode gerar vários deadlocks,
dependendo do número de usuários simultâneos que vc tiver. Até hoje
nunca precisei usa-la nos meus sistemas.

[]s
Cantu (Membro do TeamFB - FireBase)
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br

AS> Boa tarde pessoal.

AS> Li no livro "The Firebird Book" que podemos utilizar em alguns
AS> casos específicos uma característica de concorrência chamada "Snapshot 
Table Stability".
AS> Esta característica será muito útil para uma situação específica
AS> na nossa aplicação, mas não estou conseguindo utilizar as palavras chave 
:
AS> SNAPSHOT TABLE STABILITY, WAIT, WITH LOCK, [PROTECTED | SHARED] {READ | 
WRITE}
AS> Já busquei no livro e na lista de discussão, mas não consegui
AS> encontrar exemplos de instruções SQL que se utilizem desta 
característica.

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


______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.476 / Virus Database: 269.10.0/886 - Release Date: 4/7/2007 
13:40






Mais detalhes sobre a lista de discussão lista