Concordo com você. Temos que tomar muito cuidado...!
ATé +

2009/8/12 Charly Frankl <[email protected]>

> É uma alternativa, apesar de eu não gostar muito dela, pois sou a favor da
> delegação de responsabilidades. Neste caso, transação de banco ser de
> responsabilidade do banco... Delegando controle transacional para a
> aplicação podemos incorrer em falhas já corrigidas no banco, além de outros
> transtornos, como tornar muito complexa a implementação de código, muitas
> vezes desnecessariamente (e antes que me leve a mal, não estou falando no
> teu caso, pois nem conheço o problema).
>
>
> Mas como dito anteriormente, e uma das coisas que acho mais bacana na área
> de TI é que pra cada caso uma solução.
>
>
> Att,
>
>
> --
> Charly Frankl
> http://javadevilopers.blogspot.com/
> [email protected]
> Linux user #391083
>
>
>
>
> 2009/8/12 mateusgra <[email protected]>
>
>
>> Resolvi esse problema na aplicação. Em Java por exemplo vc pode fazer um
>> filter onde so vai dar o commit qdo toda a transação for terminada.
>> E se vc for mais alem pode até esperar o subimit do cliente.
>>
>> Seguindo o exemplo da compra online ele so atualizaria o saldo e o estoque
>> se o cliente confirmasse toda a compra.
>>
>>
>> MIGUEL JOSE DE LIMA wrote:
>> >
>> > Caros, participantes...
>> > Sou iniciante neste mundo do PostgreSQL.
>> > Trabalho com outro Banco de Dados - ADABAS (UNIX SOLARIS/MAINFRAME),
>> > mas me incubiram de fazer testes no PostgreSQL para bloquer registros.
>> > Então...
>> >
>> > Estou precisando de ajuda para bloquear a leitura de um registro, ou
>> seja,
>> > em um cenário como:
>> >  "Atualização de Estoque de um Material" :
>> > Antes de atualizar o estoque do material selecionado eu preciso bloquear
>> o
>> > registro para que
>> > nenhuma outra sessão possa obter o dado do registro.
>> > PRECISO DE UMA LEITURA EXCLUSIVA - TOTALMENTE RESTRITIVA.
>> > Estou usando o PostgreSQL 8.3.7 para os testes - em linux
>> > Já li e reli sobre o Isolamento de Transação, mas pode ser que eu não
>> > esteja
>> > entendendo...???
>> > Fiz o seguinte teste via psql:
>> > - Na Sessão "A"
>> >   db_teste=# BEGIN WORK;
>> >   BEGIN
>> >   db_teste=# LOCK TABLE tab_material IN ROW EXCLUSIVE MODE NOWAIT;
>> >   LOCK TABLE
>> >   db_teste=# SELECT * FROM tab_material where codg_serma='10' FOR
>> UPDATE;
>> >   resultado obtido ok!
>> >   *** aqui eu preciso bloquear todos os materiais/itens (de um pedido) -
>> > como ex. fiz de apenas 1 (um).
>> >
>> > - Na Sessão "B":
>> >     ** Fiz o mesmo SELECT sem a clausula FOR UPDATE:
>> >   SELECT * FROM tab_material where codg_serma='10'
>> >
>> >   ** aqui eu obtive o resultado ok da leitura.
>> >      Portanto, é aqui, neste ponto que não deveria permitir nenhuma
>> > leitura,
>> > já que sessão "A" ainda não terminou!
>> >      E AI ALGUÉM PODE ME AJUDAR!?
>> >
>> > Obrigado!
>> >
>> > _______________________________________________
>> > pgbr-geral mailing list
>> > [email protected]
>> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/BLOQUEIO-DE-REGISTRO-tp24923152p24937028.html
>> Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a