RES: [firebase-br] Concorrência de acesso

Davi Eduardo Borges Wall davi.wall em mult.com.br
Qua Mar 21 09:31:21 -03 2007


Renan,

Se vc utilizar o esquema que mencionei,
Neste seu exemplo, vai fucnionar perfeitamente

Quando primeiro usuário alocar o registro com valor de 500 reais, ele vai fazer o desconto. Quando segundo usuário for salvar o registro de 500 reais com o desconto dele, na hora do commit, vai aparecer uma mensagem que o registro já foi alterado.

[]'s
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em nome de Renan de Oliveira
Enviada em: quarta-feira, 21 de março de 2007 09:09
Para: FireBase
Assunto: Re: [firebase-br] Concorrência de acesso

Vamos supor o seguinte exemplo.

Dois fulanos estao com a mesma tela de pagamento a ser efetuado de um
determinado cliente, com saldo a pagar de 500,00
fulano1 - pega o saldo a pagar 500 e desconta um pagamento de 200 reais,
saldo fica de 300,00
fulano 2 - pega o saldo a pagar 500 e desconta um pagamento de 100 reais,
saldo fica de 400,00

e isso nao pode acontecer, pois o saldo deveria de ser 500 - 200 - 100 =
200,00

Renan

----- Original Message ----- 
From: "Davi Eduardo Borges Wall" <davi.wall em mult.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, March 21, 2007 9:03 AM
Subject: RES: [firebase-br] Concorrência de acesso


Como assim ?
As chances disto acontecer são enormes se você iniciar a transação por
exemplo no Onshow do form e commitar depois do post.

Lock, é quase impossível de acontecer iniciando a transação antes do post e
comitando após o post. É uma fração de segundo. Uma das maiores empresas
De ERP do Brasil tem sua tecnolgia baseada nesta regra.

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Rubem Nascimento da Rocha
Enviada em: quarta-feira, 21 de março de 2007 08:49
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] Concorrência de acesso
Prioridade: Alta

Concordo com o Renan. Ele pode não querer saber qual o usuário que pegou o
bloqueio primeiro, mas se um deles abrir uma transação e efetuar uma
atualização no determinado registro, a outra pessoa que tentar atualizar o
mesmo registro pode receber uma exceção de deadlock. Sds.


>From: "Renan de Oliveira" <renan em safetech.inf.br>
>Reply-To: renan em safetech.inf.br, FireBase <lista em firebase.com.br>
>To: "FireBase" <lista em firebase.com.br>
>Subject: Re: [firebase-br] Concorrência de acesso
>Date: Wed, 21 Mar 2007 08:43:22 -0300
>
>Davi,
>
>Nao creio que essa forma de pensar esteja correta...
>em inúmeras situacoes eh necessario fazer lock do registro...
>
>Renan
>----- Original Message -----
>From: "Davi Eduardo Borges Wall" <davi.wall em mult.com.br>
>To: "FireBase" <lista em firebase.com.br>
>Sent: Wednesday, March 21, 2007 8:36 AM
>Subject: RES: [firebase-br] Concorrência de acesso
>
>
>Você não precisa saber se dois usuários estarão utilizando o mesmo
>registro.
>
>Isto é natural. Aquele que salvar o registro primeiro é o beneficiado.
>
>
>-----Mensagem original-----
>De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
>nome de Gleiber
>Enviada em: quarta-feira, 21 de março de 2007 07:59
>Para: Lista Firebird
>Assunto: [firebase-br] Concorrência de acesso
>
>Ola lista!
>tenho uma aplicação delphi+dbexpress+firebird..q roda blz em desktop..estou
>migrando pra rede...tenho uma duvida..
>Como tratar as concorrências qdo 2 usuarios acessam o mesmo registro..por
>exemplo:
>vou baixar um titulo em conta receber..pra trazer o cliente. filtro com
>clientdataset..entaum ele fica na memoria....até que eu confirme a baixa do
>titulo, se um 2º usuario for fazer essa baixa pra esse mesmo registro...com
>o mesmo procedimento..como vou saber q está sendo utilizado mesmo registro?
>Não uso applyupdate....ao salvar eu inicio e finalizo as transações....
>
>Tem como utilizar with lock no firebird..como ficaria a sintaxe pra essa
>situação..?
>
>Obrigado
>Gleiber/MG
>______________________________________________
>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
>
>______________________________________________
>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
>
>
>
>______________________________________________
>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

_________________________________________________________________
MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br


______________________________________________
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

______________________________________________
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




______________________________________________
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