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

Responder a